我得到了這個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 /文本文件有什麼問題?
<?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"
更改爲encoding="UTF-8"
時,一切正常。是iconv
不足以將其轉換爲UTF-8?
這些文件似乎是一個'UTF-8'編碼文件。 –
如果您還沒有安裝[EncodingHelper](https://github.com/SublimeText/EncodingHelper) – PositiveLogic
我已更新我的文章。請看一下。手動更改文件內的字符串可修復所有內容。 – musicliftsme