gpt4 book ai didi

XML 的 PHP MySQL 编码问题

转载 作者:行者123 更新时间:2023-11-30 23:32:29 25 4
gpt4 key购买 nike

我正在处理第三方 XML,其中包含特殊字符,如项目符号、长破折号等。

示例 XML:

$xml = "<xml><node>• Special Characters</node></xml>";

我的目标是使用 PHP 解析此 XML 并将其插入 MySQL 数据库。我正在使用 DomDocument 解析 XML,以使用 simplexml_import_dom 从 DOM 节点获取 SimpleXMLElement 对象。

DomDocument 的加载方法失败,除非我使用 utf8_encode 对 xml 进行编码。

$doc = new DOMDocument();
$doc->loadXML(utf8_encode($xml));

为了能够解析 xml,我知道我需要 utf8_encode 函数。在能够解析 XML 后,MySQL 表中的插入将导致特殊字符显示为?或垃圾。即使是来自 XML 的特殊字符,如果在解析后显示在浏览器上也将是垃圾。

MySQL 表列为文本数据类型,并采用 latin1_swedish_ci 排序规则。我在 SO 上看到了类似的问题并尝试了他们的解决方案,例如运行 mysql_query('SET NAMES utf8') 或更改列编码,但它们对我不起作用。

请指教。

最佳答案

问题是您的数据库默认仅适用于 Latin1 编码。您需要将数据库或表(我忘了是哪个,也许两者都忘记了)编码更改为 UTF8。

你可以试试

alter table TABLE_NAME charset utf8

http://wolfram.kriesing.de/blog/index.php/2007/convert-mysql-db-to-utf8

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

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