如何清理或转换奇怪的XML字符和格式?

时间:2012-05-25 05:00:49

标签: php xml parsing character-encoding formatting

我有一个包含一些奇怪格式的XML文件,例如:

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

注意“3D3D”。此外,在整个文件的其余部分,线条突破大约78个字符,并包含更多“3D”,沿着

行。
Supercalifragilis=
=3D
ticexpialidocious=
=3D

起初我认为它可能与ISO-8859-1编码有关,但是通过PHP的mb_convert_encoding($xml, "UTF-8", "ISO-8859-1")运行文本似乎没有改变任何一种。

有谁熟悉这些特殊的奇怪字符和格式?如果是这样,你能推荐任何快速方法来清理它以进行转换,所以我可以用SimpleXML这样的方法干净地解析文件吗?

1 个答案:

答案 0 :(得分:2)

奇怪的是QP(Quoted Printable)编码:= xx代表十六进制代码xx的字符。例如,= 3D代表等号“=”。在QP中,线条末尾的软线断点为“=”。所以似乎数据是QP编码两次

所以希望quoted_printable_decode会有所帮助。