gpt4 book ai didi

php - Debian 服务器上 PHP DOM 的 UTF-8 问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:02:04 26 4
gpt4 key购买 nike

我的 Debian 服务器上的 PHP 中的 UTF-8 字符串有问题。

细节更新

我做了更多的测试,现在情况更具体了。我更新了标题和详细信息以更好地适应这种情况。感谢您的回复,很抱歉没有清楚地描述问题。以下脚本在我的本地 Windows 机器上运行良好,但在我的 Debian 服务器上运行不正常:

<?php
header("Content-Type: text/html; charset=UTF-8");
$string = '<html><head></head><body>UTF-8: ÄÖÜ<br /></body</html>';
$document = new DOMDocument();
@$document->loadHTML($string);
echo $document->saveHTML();
echo $string;

正如在我的本地机器上预期的那样,输出是:

UTF-8: ÄÖÜ
UTF-8: ÄÖÜ

在我的服务器上输出是:

UTF-8: ÄÖÜ
UTF-8: ÄÖÜ

我在没有 BOM 的 UTF-8 中用 Notepad++ 编写了脚本,并通过 SSH 传输了它。正如 guido 所注意到的,字符串本身是正确的 UTF-8 编码的。 PHP DOM 或 libxml 似乎有问题。原因一定是某种设置,因为它取决于机器。

原始问题

我在本地使用 Windows 上的 XAMPP 工作,一切正常。但是当我在服务器上部署我的项目时,UTF-8 字符串变得一团糟。事实上,当我上传这个测试脚本时

echo utf8_encode('UTF-8 test: ÄÖÜ');

我得到“A”。此外,当我使用 putty 连接到服务器时,我无法在 shell 中正确写入元音符号 (ÄÖÜ)。我什至不知道这个问题是否与 PHP 相关。

最佳答案

检查您的 apache 的 AddDefaultCharset设置。

在标准的 debian apache 发行版上,可以在 /etc/apache2/conf.d/charset 中修改设置。

关于php - Debian 服务器上 PHP DOM 的 UTF-8 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4724241/

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