Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Cocoa(iPhone)解码XML文档中的shift jis编码数据_Iphone_Xml_Cocoa_Cocoa Touch_Nsxmlparser - Fatal编程技术网

如何使用Cocoa(iPhone)解码XML文档中的shift jis编码数据

如何使用Cocoa(iPhone)解码XML文档中的shift jis编码数据,iphone,xml,cocoa,cocoa-touch,nsxmlparser,Iphone,Xml,Cocoa,Cocoa Touch,Nsxmlparser,我有一个XML文档,可能有shift-jis编码的数据,我正试图使用NSXMLParser对象对其进行解析 通常我假设文档是UTF8编码的,并且一切都很好-有人知道我是否/如何确定元素是否是shift jis编码的,然后如何解码它吗 谢谢XML文档是UTF-8编码的,除非其XML声明中另有说明,例如: <?xml version="1.0" encoding="shift_jis"?> 或: 任何XML解析器都应该检测XML声明中给出的编码。(一些解析器可能不支持某些CJK

我有一个XML文档,可能有shift-jis编码的数据,我正试图使用NSXMLParser对象对其进行解析

通常我假设文档是UTF8编码的,并且一切都很好-有人知道我是否/如何确定元素是否是shift jis编码的,然后如何解码它吗


谢谢

XML文档是UTF-8编码的,除非其XML声明中另有说明,例如:

<?xml version="1.0" encoding="shift_jis"?>

或:


任何XML解析器都应该检测XML声明中给出的编码。(一些解析器可能不支持某些CJK编解码器,因此会抱怨,但AIUI NSXMLParser应该可以。)

如果您有一个带有Shift-JIS字节序列的文件,但该文件没有这样规定的编码,或者在某些元素中包含Shift-JIS字节序列,而在其他元素中包含UTF-8,那么您所拥有的格式不正确;它根本不是XML文档,没有解析器会读取它

如果您刚刚得到一个丢失的编码声明,那么您确实需要在源端修复它,但与此同时,在将其输入解析器之前,侵入一个合适的XML声明或手动将其从Shift JIS转换为UTF-8应该会有所帮助

<?xml version="1.0" encoding="cp932"?>