Я использовал NSURL для простой проверки URL-адресов, в основном для отсеивания специальных символов, отличных от ascii, которые мне не нужны в моем конкретном приложении. Я беру URL-адрес в качестве входных данных в NSString, а затем пытаюсь создать NSURL с помощью URLWithString. Если это возвращает nil, приложение выдает сообщение об ошибке.
Например, если я ввожу «あ か» в качестве ввода (это два японских символа), тогда NSURL будет равен нулю. Это работает, как ожидалось. Однако недавно я заметил, что при вводе строки, содержащей только один символ, отличный от ASCII, NSURL обрабатывает ее и возвращает значение в кодировке URL. Поэтому, если я введу «あ» в качестве входных данных, результирующий NSURL НЕ будет равен нулю. Значение absoluteString - «% E3% 81% 82».
Мне интересно, ошибка ли это в NSURL или какая-то лазейка, которую я не понимаю.
Я использую Xcode 3.2.5 и iOS 4.2 SDK.