我有一个很大的XML文件(>15Mb),我需要读取它,解析它,并在数据库中存储一些值。我的问题是,XML以不同的格式(UTF-8,ISO-8859-1)出现。
对于UTF-8没有问题。但是ISO-8859-1给我带来了巨大的问题!!标签带有特殊字符,XMLReader和readOuterXML()无法正确解析。
我已经尝试过使用,但没有成功。
对于UTF-8没有问题。但是ISO-8859-1给我带来了巨大的问题!!标签带有特殊字符,XMLReader和readOuterXML()无法正确解析。
我已经尝试过使用,但没有成功。
$xml = new XMLReader;
$xml->open($import_file,'ISO-8859-1');
尝试过:
- utf8_encode
- mb_convert_encoding($stringXML,'UTF-8');
- iconv("ISO-8859-1","UTF-8//TRANSLIT",$stringXML);
XML(简化)
- tag (id) --> 没有问题
- tag (baños) --> 有问题
xml:
<?xml version="1.0" encoding="ISO-8859-1"?>
<data>
<id><![CDATA[5531]]></id>
<baños><![CDATA[0]]></baños>
</data>
它们都没有帮助到我。
hex-dump -C
(或其他十六进制编辑器),找出用于ñ
字符的字节值。我们想确保它实际上是 ISO-8859-1 而不是其他东西。 - Evert.
。重要的部分在该行的前半部分,即实际代码。在那里,你的ñ
被更改为0x96
。0x96 不是 ISO-8859-1 中的有效字符代码,也不是 CP-1252 中的有效字符代码。因此,无论你的编码是什么,它都是其他编码! - Evert