NSURL URLWithString:与非英语重音字符为null
我有以下string…
NSString *googleSearchString = @"http://www.google.com/search?q=lyrics+%22Tænder+På+Dig%22+%22Jakob+Sveistrup%22";
注意它有一些重音字符。 当我试图把它变成一个url返回的url为空…
[NSURL URLWithString:googleSearchString];
所以通常的url工作,除非在string中有重音的非英文字符。 任何帮助如何处理?
您需要转义特殊字符才能正常工作。 就像是:
[NSURL URLWithString:[googlSearchString stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]];
使用Swift 2.2
对于非英文字符的转义,例如: 做一个URL请求做:
let urlPath = path.URLString.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())
这里的urlPath
是一个Optional
path
是你的原始URL(非英文字符)
在2k16方法stringByAddingPercentEscapesUsingEncoding:
已被弃用,并没有办法正确地转义。 当预定义的URL只使用浏览器编码的string,因为stringByAddingPercentEncodingWithAllowedCharacters:
方法不能逃脱整个URL。
有时候,url中的空格会导致这个问题。