soword科技言
永久公益免费API接口
提供永久免费的API接口,查看更多API接口,如果您有其他免费API资源,请联系我们,造福人类。
提供商务开发:小程序,系统,APP
定制开发,免费评估,免费咨询,价格便宜,售后保障,前往开发服务中心联系开发客服中心
PHP 5.6更新使UTF-8不起作用

我最近将我的PHP-Webspace更新到5.6(从5.5),发生了一些奇怪的事情。即使我正在使用Meta Tag 和.htaccess文件中的以下行,我的网站也会突然错误地显示UTF-8字符AddDefaultCharset utf-8

在我的PHP脚本中插入以下行后,一切又恢复了header('Content-Type: charset=utf-8');

这两者都发生在我的Webspace(我无法访问php.ini文件)和本地服务器上。因为我也在使用其他PHP脚本,所以我不想插入header('Content-Type: charset=utf-8');所有配置文件...

可能是什么原因?

只是Content-Type: charset=utf-8无效,我不知道浏览器会如何解释。也许您实际上是在覆盖正确的UTF-8标头,以使浏览器现在不会将您的网站解释为UTF-8。如果在您的网站解释为UTF-8的情况下可以正常工作,则意味着您的网站实际上不是UTF-8编码的。首先,通过在视图→编码中在浏览器中显式选择一种编码来进行测试。

因此,我告诉您,这可能意味着您的网站实际上并未被解释为UTF-8,因为这是无效的Content-Type标头。这可能意味着您的网站实际上不是UTF-8编码的。这将指出一些深层次的问题。

但是就像我解释的那样,在我从PHP 5.5升级到5.6之前,这一切都起作用。为了使其再次起作用,我在PHP中添加了标头(顺便说一句使我惊讶的是它起作用了)。可能与我通过FTP上传文件的方式有关吗?

如果您不想使用php的header()函数,则可以使用metahtml标签。


PHP 5.6中的default_charset php.ini设置从空更改为UTF-8。如果尝试在HTML头中设置其他字符集,则可能会破坏HTML输出。它还可能会破坏htmlentities()和htmlspecialchars之类的函数。

就我而言,我曾经使用php函数将默认字符集设置为UTF-8 mb_http_output('UTF-8');,尽管对于PHP5.6,我删除了该函数,因为它似乎是多余的。它使字符显示再次可读。


2023-03-22 10:04:19

新人小程序+APP定制199元起


发放福利,助力中小企业发展,真正在互联网中受益

点击询问定制

广告服务展示