【问题标题】:NSXMLParser Doesn't Parse when URL contains chars from different language当 URL 包含来自不同语言的字符时,NSXMLParser 不解析
【发布时间】:2011-07-21 03:42:13
【问题描述】:

您好,我正在开发一个通过 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];

【问题讨论】:

  • 我在浏览器中尝试了这两个网址,但在我看来它们都不起作用。

标签: iphone objective-c nsxmlparser nsurl


【解决方案1】:

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

请看这个问题:

iPhone URL encoding Problem

或者搜索“iphone url encoding”。

【讨论】:

  • 非常感谢您拯救了我的一天!
  • testURL = [testURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];解决了我的问题。
猜你喜欢
  • 2011-12-28
  • 1970-01-01
  • 2021-07-11
  • 2012-03-12
  • 2012-04-14
  • 2014-12-31
  • 2021-01-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多