我得到了这个 UTF-16 XML 文件来使用。我将其转换为 UTF-8 ( iconv -f UTF16 -t UTF8 'file-utf16.xml' > 'file-utf8.xml'
),但结果似乎不是普通的文本文件。我使用的是 OS X,当我在 Sublime Text 2 中打开这个转换后的文件时,会显示以下内容,然后simplexml_load_file
返回false
.
<?xml version="1.0" encoding="UTF-16" standalone="no"?>
<Item itemno="0000004" desc="" qtyavail="0" unitprice="0" salesprice="0" block="Yes" dnr="No"/>
<Item itemno="000001" desc="" qtyavail="0" unitprice="199.99" salesprice="199.99" block="No" dnr="No"/>
...
当我用 textEdit 打开它时,字符都很奇怪。它是汉字和其他一些东西的混合体,如下所示。原始 XML 文件中绝对没有中文,只有罗马字母、数字和 XML 中使用的其他典型字符。
㼼浸敶獲潩㵮ㄢ〮•湥潣楤杮∽呕ⵆ㘱•瑳湡慤潬敮∽潮㼢ਾ䤼整瑩浥潮∽〰〰〰∴搠獥㵣∢焠祴癡楡㵬〢•湵瑩牰捩㵥〢•慳敬灳楲散∽∰戠潬正∽教≳搠牮∽潎⼢ਾ䤼整瑩浥潮∽〰〰•敤捳∽•瑱慹慶汩∽∰甠楮灴楲散∽㤱⸹㤹•慳敬灳楲散∽㤱⸹㤹•汢捯㵫丢≯搠牮∽潎⼢ਾ
编码有问题吗?如果是这样,我怎样才能把它变成一个常规的文本文件,以便通过simplexml_load_file
. 如果不是,这里有什么问题?事实上,这会在这个文件上simplexml_load_file
返回。false
更新:刚刚意识到,当我在 XML 文件中将字符串更改为时,一切正常encoding="UTF-16"
。将其转换为 UTF-8 还不够吗encoding="UTF-8"
?iconv