【发布时间】:2015-08-04 10:28:04
【问题描述】:
我最近将我的 PHP-Webspace 更新到 5.6(从 5.5 开始)并且发生了一些奇怪的事情。尽管我使用元标记 <meta charset="utf-8"> 并在我的 .htaccess 文件 AddDefaultCharset utf-8 中使用以下行,但我的网站突然错误地显示 UTF-8 字符。
在我的 PHP 脚本中插入以下行后,一切都恢复正常了 header('Content-Type: charset=utf-8');。
这都发生在我的网站空间(我无法访问 php.ini 文件)和我的本地服务器上。由于我也在使用其他 PHP 脚本,所以我不想在所有配置文件中插入 header('Content-Type: charset=utf-8');...
可能是什么原因?
【问题讨论】:
-
只是
Content-Type: charset=utf-8无效,我不知道浏览器会如何解释它。也许您实际上覆盖了正确的 UTF-8 标头,因此浏览器现在不将您的网站解释为 UTF-8。如果它在您的网站不被解释为 UTF-8 时有效,则意味着您的网站实际上不是 UTF-8 编码的。首先通过在浏览器中的 View → Encoding 中显式选择一种编码来进行测试。 -
@deceze 你可能误解了我的意思。仅当我执行
Content-Type: charset=utf-8时才有效。 -
所以我告诉你,这可能意味着你的网站实际上并没有被解释为 UTF-8,因为这是一个无效的 Content-Type 标头。这可能意味着您的网站实际上不是 UTF-8 编码的。这会指出一些非常深层次的问题。
-
@deceze 我明白你的意思。但就像我解释的那样,在我从 PHP 5.5 升级到 5.6 之前,这一切都有效。为了让它再次工作,我在 PHP 中添加了标头(顺便说一句,它的工作让我感到惊讶)。会不会和我通过 FTP 上传文件的方式有关?
标签: php encoding utf-8 updates