2012-05-25 45 views
1

我有一個包含一些奇怪的格式的XML文件,如:如何清理或轉換奇怪的XML字符和格式?

<?xml version=3D3D"1.0" encoding=3D3D"ISO-8859-1"?> 

的通知 「3D3D」 S。另外,在整個文件的剩餘部分,該線大約78個字符斷裂,包括更多的「3D」 S,沿

Supercalifragilis= 
=3D 
ticexpialidocious= 
=3D 

行起初我以爲這一切可能與在ISO-8859- 1編碼,但通過PHP的mb_convert_encoding($xml, "UTF-8", "ISO-8859-1")運行文本似乎沒有改變任何。

任何人都熟悉這些特殊的奇怪字符和格式?如果是這樣,你能推薦任何快速的方法來清理它來轉換它,所以我可以用SimpleXML來乾淨地解析文件嗎?

+0

這可能會給一些指針 - http://www.minixml.org/forums.php?gminixml.general+v:273,http://markmail.org/message/n6nwvdbyqlq5wcml –

回答

2

奇怪的是QP(Quoted Printable)編碼:= xx代表十六進制代碼爲xx的字符。例如,= 3D代表等號「=」。在QP中,軟線斷點在一行的末尾是「=」。所以看起來數據是QP編碼兩次

所以希望quoted_printable_decode將有所幫助。

+1

據我所知,QP編碼很可能是通過電子郵件傳輸非ASCII文檔而發生的。如果您想要修復損害以發現根本原因並防止再次發生,您可以查看XML是如何在網絡上發送的。 –

+0

@Jukka K. Korpela - 謝謝,那正是我需要的!兩次通過quoted_printable_decode運行xml給了我我需要的東西。 –