Ответ 1
Вам нужно избежать специальных символов, чтобы они работали правильно. Что-то вроде:
[NSURL URLWithString:[googlSearchString stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]];
У меня есть следующая строка...
NSString *googleSearchString = @"http://www.google.com/search?q=lyrics+%22Tænder+På+Dig%22+%22Jakob+Sveistrup%22";
Обратите внимание, что у него есть некоторые символы с акцентом. Когда я пытаюсь превратить это в url, возвращаемый url равен null...
[NSURL URLWithString:googleSearchString];
Таким образом, обычно работает URL, за исключением случаев, когда в строке присутствуют символы с неанглийскими буквами. Любая помощь в том, как с этим справиться?
Вам нужно избежать специальных символов, чтобы они работали правильно. Что-то вроде:
[NSURL URLWithString:[googlSearchString stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]];
Использование Swift 2.2
Для экранирования неанглийских символов, например: чтобы сделать запрос URL-адреса:
let urlPath = path.URLString.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())
Здесь urlPath
- это Optional
, а path
- ваш исходный url (тот, у которого есть неанглийские символы)
В методе 2k16 stringByAddingPercentEscapesUsingEncoding:
устарел, и это невозможно. Когда URL предопределен, просто используйте строку, закодированную браузером, потому что метод stringByAddingPercentEncodingWithAllowedCharacters:
не может избежать цельного URL.
Иногда это может вызвать пробел в URL-адресе.