我有一个大的
XML(> 15Mb),我必须阅读它,解析它,并在数据库中存储一些值.我的问题是,XML以不同的格式(UTF-8,ISO-8859-1)出现.
用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>
他们都没有帮助我.
解决方法
你在PHP中的内部编码是什么?你可以用echo mb_internal_encoding();来检查它.
如果它是UTF-8,则mb_convert_encoding($data,“UTF-8”)将不会执行任何操作,因为第三个参数$from_encoding已经是“UTF-8”.
您必须提供源编码作为该函数的第三个参数.
所以也许这可以解决问题:
//check which encoding the data has? $encoding = mb_detect_encoding($data); if($encoding != "UTF-8"){ //specify from which encoding to convert to utf-8 $data = mb_convert_encoding($data,"UTF-8",$encoding); }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。