Iphone NSXMLParser不';当URL包含来自不同语言的字符时,不能进行解析

Iphone NSXMLParser不';当URL包含来自不同语言的字符时,不能进行解析,iphone,objective-c,nsxmlparser,nsurl,Iphone,Objective C,Nsxmlparser,Nsurl,大家好,我正在开发一个程序,该程序通过XMLWebService发送请求,并使用NSXML解析器解析数据 我已经在我的程序中使用过这种方法,它可以完美地工作,直到我有了这个: 当URL如下所示时,NSXML解析器返回数据并进行解析: http://someasp.netserver/xmlservices/service1.asmx/getSales?date1=01.03.2011%2000:00:00&date2=%2023.03.2011%2000:00:00%20&Nam

大家好,我正在开发一个程序,该程序通过XMLWebService发送请求,并使用NSXML解析器解析数据

我已经在我的程序中使用过这种方法,它可以完美地工作,直到我有了这个:

当URL如下所示时,NSXML解析器返回数据并进行解析:

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地址复制并粘贴到web浏览器中,可以看到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];

您需要执行URL编码,不能将特殊字符按原样插入URL

请看这个问题:


或者搜索“iphone url编码”。

我在浏览器中尝试了这两个url,但在我看来它们都不起作用。非常感谢你救了我一天!testURL=[testURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];解决了我的问题。