我有以下字符串......
NSString *googleSearchString = @"http://www.google.com/search?q=lyrics+%22Tænder+På+Dig%22+%22Jakob+Sveistrup%22";
请注意,它有一些重音字符。当我尝试将其转换为url时,返回的url为null ...
[NSURL URLWithString:googleSearchString];
通常,除非字符串中有重音非英语字符,否则url会起作用。有关如何处理的任何帮助吗?
答案 0 :(得分:70)
您需要转义特殊字符才能使其正常工作。类似的东西:
[NSURL URLWithString:[googlSearchString stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]];
答案 1 :(得分:7)
使用Swift 2.2
要转义非英语字符,例如:发出网址请求,请执行以下操作:
let urlPath = path.URLString.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())
此处urlPath
是Optional
,path
是您的原始网址(非英文字符的网址)
答案 2 :(得分:5)
将此用于 SWIFT 4:
let url = myURLString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
let myURL = URL(string: url)
答案 3 :(得分:0)
在2k16中,方法stringByAddingPercentEscapesUsingEncoding:
已被弃用,并且无法正确转义此方法。当预定义URL时,只使用浏览器编码的字符串,因为stringByAddingPercentEncodingWithAllowedCharacters:
方法无法转义整个URL。
答案 4 :(得分:-1)
有时,网址中的空格可能会导致此问题。