gpt4 book ai didi

php - XML 解析 - PHP 编码

转载 作者:太空狗 更新时间:2023-10-29 16:48:33 25 4
gpt4 key购买 nike

我有一个很大的 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);
}

关于php - XML 解析 - PHP 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25374310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com