NSXMLParser не анализирует, когда URL содержит символы из другого языка - PullRequest
0 голосов
/ 23 марта 2011

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

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

NSXML Parser возвращает данные и анализирует, когда 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 значений «Имя» в моей программе, и всякий раз, когда имя содержит символы, такие как «ö, ü, ş, İ, ç», оно просто возвращает ноль, иначе оно работает нормально.

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

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

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

1 Ответ

1 голос
/ 23 марта 2011

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

Пожалуйста, посмотрите этот вопрос:

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

Или поискать кодировку URL-адреса iphone.

...