2013-03-19 29 views
0

由於「包含」連接數據庫,此XML的結構已損壞。
正如您所看到的,文件的第一行中有奇怪的字符('╗ ┐' ╗ ┐)。「php include」生成器中的奇怪字符xml「'╗┐'╗┐」

但是,它們並未出現在網絡上,因爲它們只在我使用cmd.exe到type的文件時出現。這是有問題的文件截圖:

enter image description here

這裏的文件的URL: http://web.wipix.com.br/aniversariantes.xml

在我的PHP文件,我有兩個「包括」在文件connection.php(連接到數據庫)和「serialize.php」來生成XML。 這隻適用於如果我拿出「包含」並僅在一頁上使用所有內容的情況。我怎樣才能解決這個問題?

+0

我猜想在其中一個文件的開頭有一個Unicode [Byte Order Mark](http://en.wikipedia.org/wiki/Byte_order_mark)。你將無法在編輯器中看到它。你在用什麼編輯器?在保存文件時是否有*不包括字節順序標記(BOM)的選項? – 2013-03-19 16:21:46

+0

您確定您的文件是真正使用ISO-8859-1進行編碼的,如''聲明所述? – zneak 2013-03-19 16:22:29

+0

zneak,我是頭(「content-type:text/xml; charset = ISO-8859-1」); – 2013-03-19 16:28:38

回答

0

可能是你的XML文件與BOM UTF-8格式。

http://en.wikipedia.org/wiki/Byte_order_mark

刪除冒犯8個字節或使用文本編輯器保存XML沒有BOM。 如果xml是dinamically生成的,您必須修改生成代碼。

此外,BOM字節似乎編碼不好。可能xml被錯誤地轉換了,並且BOM字節被搞砸了。

+0

謝謝生成XML的文件沒有「BOM」,但另外兩個有 – 2013-03-19 16:50:32

1

這是一個byte order mark(Unicode字符U + FEFF),但它顯示爲不正確的編碼。由於您的文檔聲稱被編碼爲ISO-8859-1,因此不應該有字節順序標記。

0

在開始時的奇怪東西可能是一個字節順序標記,但我不確定。
字節順序標記是插入在文件開頭的一個字節序列,用於指示它的endianness,或者最重要的字節是否在前。

從你的輸出,也有在文件中其他怪異字符(而不是文本),所以它可能是程序插入其中。