当 URL 包含来自不同语言的字符时,NSXMLParser 不会解析

发布于 2024-10-25 11:01:59 字数 954 浏览 3 评论 0原文

您好,我正在开发一个程序,该程序通过 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 地址复制并粘贴到 Web 浏览器中,我可以看到 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];

hi there I am working on a program that sends requests via XML Webservice and parses the data using NSXML parser.

I've used that method for anything on my program and it works flawlessly until I had this:

NSXML Parser returns data and parses when the URL is like that:

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

but when I change the URL to this:

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

it doesn't return anything.

I copy and paste those URL addresses into a web browser and I can see the XML results but on the iPhone NSXMLparser just ignores the parsing and returns nothing.

I have a list of 15 "Name" values in my program, and whenever the name contains characters like 'ö,ü,ş,İ,ç' it just returns zero, otherwise it's working normally.

Thanks for helping.

Also, here's my parsing code in the program :

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

放低过去 2024-11-01 11:02:20

您需要执行 URL 编码,不能直接将特殊字符按原样塞入 URL 中。

请参阅此问题:

iPhone URL 编码问题

或搜索“iphone url 编码”。

You need to perform URL encoding, you can't just shove special characters into a URL as-is.

Please see this question:

iPhone URL encoding Problem

Or search for "iphone url encoding".

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文