尝试解析包含特殊字符的xml时发生异常

时间:2011-11-02 11:03:18

标签: objective-c xml parsing ascii

大家 我正在开发一个使用xml作为客户端和服务器之间的通信协议的应用程序。当服务器发送响应时,响应包含用户名。现在,用户名应包含特殊字符。当执行以下行时,我看到CXMLDocument无法解析此类xml文档。

CXMLDocument *theXMLDocument = [[[CXMLDocument alloc] initWithXMLString:response options:0 error:&theError] autorelease];

其中response是包含xml文档的字符串。 通过特殊字符,我的意思是扩展的ASCII字符,其ASCII值大于128.有没有人有任何解决这个问题的方法? 最诚挚的问候

1 个答案:

答案 0 :(得分:0)

当您阅读回复时,您需要确保使用正确的字符编码将原始数据转换为字符串。

XML文档通常在

中指定文件开头的编码
<?xml version="1.0" encoding="UTF-8"?>
                              ^^^^^ the encoding that was used in the file.

当然,它可能在撒谎。无论如何,要创建字符串,您需要指定生成数据的服务器使用的编码。

所以我猜这里,但在某个地方,你可能有类似

的东西
response = [[NSString alloc] initWithData: responseData encoding: someEncoding];

您需要确保编码是用于创建正在解码的XML消息的编码。