.xml文件标记为';uft-16';MacOS上的编码行为异常

.xml文件标记为';uft-16';MacOS上的编码行为异常,xml,macos,parsing,utf-16,Xml,Macos,Parsing,Utf 16,在MacOS上打开一系列带有utf-16编码头的.xml文件时遇到问题,这些文件已转发给我 所有这些文件的前导都是干净的,编码为=“utf-16”。MS Excel无法打开它们,文本编辑器(如emacs和TextEdit)会显示奇怪的外来字符。但是,RStudio和Xcode会正确地打开它们。我可以用其中一个打开文件,并手动将编码设置为“utf-8”。完成此操作后,还可以使用Excel和文本编辑器正确解析它们 有趣的是,一旦它们被标记为“utf-8”,我就可以在emacs中打开它们,手动将编码编

在MacOS上打开一系列带有utf-16编码头的.xml文件时遇到问题,这些文件已转发给我

所有这些文件的前导都是干净的,编码为=“utf-16”。MS Excel无法打开它们,文本编辑器(如emacs和TextEdit)会显示奇怪的外来字符。但是,RStudio和Xcode会正确地打开它们。我可以用其中一个打开文件,并手动将编码设置为“utf-8”。完成此操作后,还可以使用Excel和文本编辑器正确解析它们


有趣的是,一旦它们被标记为“utf-8”,我就可以在emacs中打开它们,手动将编码编辑回“utf-16”,保存它们,然后正确打开,但标记为“utf-16”。我怀疑这些文件最初是如何生成的,但我感到困惑。

XML声明中指定的编码只是描述性的——更改它实际上不会更改文档的物理编码。您观察到的行为表明文档确实是UTF-8,但在XML声明中被错误标记为UTF-16。(您可能会发现一些工具忽略了XML声明,因此仍然可以打开该文件。)有关更多详细信息,请参阅。[我不同意结束此问题,因为它缺少调试细节。它可能与我之前评论中的链接Q/a重复,但如果没有收到该问题的错误消息,您可能无法找到它。因此,我投票重新打开您的问题。希望我上面的评论在此期间对您有所帮助。]感谢您的回复!看来emacs确实在物理上更改了文件。开始时,emacs无法打开标有“utf-16”的文件。但是,我可以使用Xcode打开文件,手动将“utf-16”编辑为“utf-8”。之后,我可以使用emacs打开文件,并再次手动将“utf-8”编辑回“utf-16”。在最后一次迭代之后,我无法再打开文件w使用emacs正常打开文件。