gpt4 book ai didi

php - 不同版本的 php 之间 DOMDocument 中的重音问题

转载 作者:可可西里 更新时间:2023-10-31 23:50:20 25 4
gpt4 key购买 nike

我在 php 中有一个使用 XML (DOMDocument) 的旧大型应用程序。
该应用程序适用于 PHP 5.2.5

$dom = new DOMDocument("1.0", "iso-8859-15");  
$dom->formatOutput = true;
...
$node->setAttribute('attr', 'value_with_éàè');
$str = $dom->saveXML();

$str 被发送到 Flex,一切正常。

现在,我们必须更换服务器。 PHP的新版本是5.2.13。
在此版本中,函数 setAttribute 失败。 (字符串不是utf-8.......)
如果我看 $str,字符串会在第一个重音处被截断。

如果我对属性使用 utf8_encode,代码就可以工作。问题是解析代码和添加utf8_encode会花很多时间.....
我正在寻找一个变量、一个标志或其他东西来让应用程序像旧版本的 php 一样工作。

有什么技巧吗?

最佳答案

去过那里。我感觉到你的痛苦。字符编码问题本身就是一个痛苦。将 MySQL、php 和网络服务器添加到组合中,您将遇到一些繁重的问题需要解决。

首先,可以将您的工具集配置为使用 IS0-8859-15。

您必须确保您使用的每个工具,php、mysql 服务器、mysql-client(可通过 my.conf 或在 php 中配置)和网络服务器都针对此字符集进行了配置。您还必须确保数据库表是 ISO-8859-15,不要传输或打开任何未为 ISO-8859-15 配置的数据,例如...(咳咳 phpMyAdmin。 )

我曾经遇到过问题,因为我在将数据库转储加载到 ISO-8859-1 数据库之前,先在我的 UTF8 编辑器中打开了它,而只是在编辑器中打开并重新保存它,通过 UTF8 转换损坏了文件。当然,这些问题会让你想撞墙,但相信我,按照上面的步骤,找到使用 UTF-8 的工具,从 DB 开始,然后从那里开始,你应该能够在不改变的情况下为那些特殊字符提供服务你的代码。

祝你好运。

关于php - 不同版本的 php 之间 DOMDocument 中的重音问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5947171/

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