2011-03-23 60 views
0

字符您好,我的工作有关发送通过XML web服务请求,并使用NSXML解析器解析数据的程序。的NSXMLParser不解析URL时,包含来自不同语言

我用这个方法对我的计划任何事情,它完美的作品,直到我有这样的:

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个“名称”值的列表,只要名称包含像'ö,ü,ş,İ,ç'这样的字符,它就会返回零,否则它正常工作。

感谢您的帮助。

而且,这里是在节目我解析代码:

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

我在我的浏览器中尝试了两个URL,但在我看来他们不工作。 – 2011-03-23 09:28:08

回答

1

您需要执行URL编码,你不能只是推特殊字符为URL原样。

请参阅此问题:

iPhone URL encoding Problem

或搜索 “iphone url编码”。

+0

非常感谢您节省了我的一天! – dreampowder 2011-03-23 12:59:20

+0

testURL = [testURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];解决了我的问题。 – dreampowder 2011-03-23 13:02:59