2016-04-25 89 views
0

朋友你好我有一些字符從PHP讀取XML文件我用此源代碼的一個問題:用PHP的XML字符的問題

$file = 'test.xml'; 
 
$xml_1 = simplexml_load_file($file); 
 

 
echo ($xml_1->content);

其工作正常,但在內容是一個特殊的字符,就像 - 它顯示了一個像這樣的罕見字符 - 我試圖包含在html頭utf8字符集中,但它也是一樣的

+0

轉換就可以顯示'test.xml' ? – Naumov

+0

幾乎可以肯定,text.xml實際上並不存儲在utf-8中,這就是你的問題。 –

+0

是的,我可以完美地看到test.xml問題是隻有當它包含特殊字符,如ñó..你可以看到,而不是他們ñ... – htmlpower

回答

0

SimpleXML通過設計發出UTF-8輸出。如果應用程序不支持UTF-8,你必須與通常的轉換工具(如mb_convert_encoding()),但你必須考慮到這一點:

  • 你需要確信你的應用程序使用的編碼。
  • UTF-8可以保存完整的Unicode目錄,因此某些字符在您的目標編碼中可能沒有等效字符。

無論如何,在2016年,除非維護遺留代碼,否則沒有理由使用除UTF-8之外的其他任何內容。

+0

如果我看到xml文件,我可以看到信息存儲在稀有字符中,例如當我把它保存在xml文件中,比如「ni?o」,真正的單詞是「niño」,這是一個博客應用程序,當我看到帖子,我可以正確看到,但如果我直接提取信息形式的XML它不工作在博客頁面我只能看到UTF-8字符集在它的工作原理我不明白爲什麼不工作 – htmlpower

+1

Make確保您使用支持UTF-8的編輯器打開XML文件。即使情況如此,您可能需要明確設置編碼。 –

+0

我應該在顯示前轉換數據嗎?我認爲博客應用程序使用一個額外的過程來將它轉換爲正確的字符,當它從xml文件中提取之前顯示我認爲它是不夠的,因爲我有其他部分的網站直接寫在html中的utf8字符集html代碼與ñó,我可以看到完美 – htmlpower

0

最後我找到了解決辦法,我必須使用utf8_decode PHP函數來它不與您必須扉頁放UTF8字符集到足夠多的字符轉換使用PHP之前

+0

這與我的答案類似,只是細節使其錯誤。正如[手冊](http://php.net/utf8_decode)清楚地解釋,這個函數將**從ISO-8859-1 **轉換爲UTF-8。盲目應用於沒有已知編碼的字符串意味着增加了另一層錯誤。 –