NSXMLParser не выполняет синтаксический анализ, если URL-адрес содержит символы с другого языка

привет, я работаю над программой, которая отправляет запросы через XML Webservice и анализирует данные с помощью парсера NSXML.

Я использовал этот метод для всего в своей программе, и он работал безупречно, пока у меня не было следующего:

Парсер NSXML возвращает данные и анализирует, когда URL-адрес выглядит следующим образом:

http://someasp.netserver/xmlservices/service1.asmx/getSales?date1=01.03.2011%2000:00:00&date2=%2023.03.2011%2000:00:00%20&Name=JOHN

но когда я меняю URL-адрес на это:

http://someasp.netserver/xmlservices/service1.asmx/getSales?date1=01.03.2011%2000:00:00&date2=%2023.03.2011%2000:00:00%20&Name=JÜRGEN

он ничего не возвращает.

Я копирую и вставляю эти URL-адреса в веб-браузер, и я могу видеть результаты XML, но на iPhone NSXMLparser просто игнорирует синтаксический анализ и ничего не возвращает.

У меня есть список из 15 значений «Name» в моей программе, и всякий раз, когда имя содержит такие символы, как «ö, ü, ş, İ, ç», оно просто возвращает ноль, в противном случае оно работает нормально.

Спасибо за помощь.

Также вот мой код парсинга в программе:

NSURL *URL=[[NSURL alloc] initWithString:testURL]; //test url is the request string
NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL :URL];
[parser setDelegate:self];
[parser parse];

person dreampowder    schedule 23.03.2011    source источник
comment
Я пробовал оба URL-адреса в своем браузере, но мне кажется, что они не работают.   -  person Iqbal Khan    schedule 23.03.2011


Ответы (1)


Вам нужно выполнить кодирование URL-адресов, вы не можете просто вставить специальные символы в URL-адрес как есть.

См. Этот вопрос:

Проблема кодирования URL-адреса iPhone

Или выполните поиск по запросу «iphone url encoding».

person occulus    schedule 23.03.2011
comment
Большое спасибо, что спасли мне день! - person dreampowder; 23.03.2011
comment
testURL = [testURL stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]; решил мою проблему. - person dreampowder; 23.03.2011