apache – Webserver覆盖页面编码?

我有十多年前用
PHP手动编码的页面.

它们以旧的希伯来语编码–windows-1255编码

最近,他们都被打破了 – 文字显示为无法识别的UTF-8字符 – 里面有问号的钻石.

当我在浏览器中手动更改编码时 – 任何浏览器 – 文本都会正确显示.

我想也许我主机上的服务器强制使用UFT-8编码.我已经更改了.htaccess以强制执行windows-1255编码,但它无法正常工作.

我尝试通过W3C验证页面,它将页面视为UTF-8

我下载了XAMPP并在本地运行服务器,但它仍在发生.

在过去一年中,Apache正在提供有关编码的网页的方式有什么变化吗?

在我浏览所有页面并更改其编码之前,我想知道是否有一个全局“开关”我可以翻转以便我的页面正确显示.

谢谢.

最佳答案 经过艰苦的努力,一个善良的灵魂帮助我意识到,不是Apache在标题中覆盖了charset而是PHP本身.

添加

header('Content-Type: text/html; charset=windows-1255');

到PHP文件的顶部修复了问题.

据我所知,链条如下:

>默认情况下,Apache使用UTF-8标头发送内容
>如果.htaccess中设置了另一个字符集,浏览器会接受它
>然后是PHP并在php.ini中的default_charset指定的标题中强制charset

您在页面到达浏览器之前定义的任何内容都将被忽略.

点赞