2013-01-18 85 views
0

我想通過PHP與DOMDocument生成一個XML文件。但在那裏有一些「怪異」的字符,所以它給我一個編碼錯誤。 error on line 2 at column 81: Encoding errorXml錯誤:錯誤的字符集?

我試圖把[0.3e](¯``·._.·[name]·._.·´¯)放在那裏。

我如下

header('content-type: text/xml'); 
$domTree = new DOMDocument('1.0', 'UTF-8'); 

echo $domTree->saveXML();解析它。

輸出如下:

<?xml version="1.0" encoding="UTF-8"?> 
<server><errors/><info><value>0</value><value>25</value><value>30</value><value>[0.3e](

希望能幫到你告訴我,我在做什麼錯在這裏或字符集使用。

David

+0

你從哪裏得到xml? – Esailija

+0

我從遊戲服務器獲取信息。奇怪的字符是服務器名稱的一部分。 – David

+0

這不是我的觀點,對不起,我的意思是顯示代碼如何得到它 – Esailija

回答

-2

在xml節點中使用CData節!

+1

我看到這個downvoted,但我很好奇,爲什麼這是錯的? (沒有測試。) – David

0

您可能需要強制輸入字符串的編碼和逃避任何剩餘的實體爲HTML實體:

$enc = mb_detect_encoding($text); 
$text = @mb_convert_encoding($text, 'UTF-8',$enc);  
$text = htmlentities($text,ENT_IGNORE,'UTF-8'); 
+0

第2行第94列出錯:實體'macr'未定義'完全複製了代碼。將$ text更改爲$ value – David

+2

XML沒有定義** html **實體 – Esailija

0

無論你是從UTF-8是不是給你獲得的數據。我認爲這是Windows-1252,但我可能是錯的。

header('content-type: text/xml'); 
$domTree = new DOMDocument('1.0', 'Windows-1252');