2011-12-04 83 views
0

嗨,大家經過5個小時的研究,並嘗試一切我非常絕望,所以我寫在這裏。 我有一個來自第三方的XML文件。當我試圖用SimpleXMLElement解析它時,它只是說該字符串不是有效的XML格式,而且我也發現這是由於ANSI文件編碼XML文件所致。我試圖將文件轉換爲UTF-8 - >它被解析器讀取,但我所有的西里爾字符都丟失了,取而代之的是無意義的字符。 然後在記事本++中,我複製了創建一個文件並使用utf8編碼的內容,並粘貼了內容 - >它很好,並且被解析器讀取。我試圖用代碼做,但沒有結果 - >我得到文件的內容,創建一個文件的第一個字節,UTF-8文件的字節,輸出內容,當我打開它 - >無意義的字符,而不是西里爾文。請幫助我,我真的需要將此文件轉換爲適用於XML解析器的UTF-8,或者您可以告訴我另一種將文件從XML解析爲數組的方式。Php xml編碼問題

+0

你應該早點考慮一下;)如果你在瀏覽器中打開xml文件會發生什麼情況,你會得到一個解析錯誤嗎? – cambraca

+0

你知道原始文件的編碼是什麼嗎? ISO8859-5? –

+0

它不是在Chrome和IE9中打開。記事本說編碼是ANSI,我不知道... –

回答

0
+0

我忘了維度,UTF-8編碼然後解碼數據丟失...爲好導致?????????我試過iconv - >你能更具體一些嗎,也許我錯過了一些東西。 –

+0

輸出工作文件時,請嘗試在需要正確輸出的字符串上使用utf8_decode()。試試吧,我認爲你沒有。讓我知道它是如何工作的。也給iconv一個鏡頭,試試iconv('UTF-8','CP-1251',$ string);或試用ISO-8859-5而不是CP-1251 – Valhallen

+0

是的,我嘗試過並告訴你它解碼爲????? ... 錯誤的字符集,從'UTF-8'轉換爲'CP-1251 '不允許'。我猜這個xml文件壞了... –

0

你需要找出編碼原始XML文件是,那麼你可以使用iconv將其轉換爲UTF8。

+0

我應該怎麼做? –

+0

如果瀏覽器拒絕打開它...我想你可以使用Word打開文件並告訴你編碼:http://office.microsoft.com/en-us/outlook-help/choose-text-encoding-當-你打開和保存檔案,HA010121249.aspx#BM2 –