大家 我正在开发一个使用xml作为客户端和服务器之间的通信协议的应用程序。当服务器发送响应时,响应包含用户名。现在,用户名应包含特殊字符。当执行以下行时,我看到CXMLDocument无法解析此类xml文档。
CXMLDocument *theXMLDocument = [[[CXMLDocument alloc] initWithXMLString:response options:0 error:&theError] autorelease];
其中response是包含xml文档的字符串。 通过特殊字符,我的意思是扩展的ASCII字符,其ASCII值大于128.有没有人有任何解决这个问题的方法? 最诚挚的问候
答案 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消息的编码。