我有 10 多年前用 PHP 手动编码的页面。
它们以旧的希伯来语编码 - windows-1255
最近,它们都坏了——文本显示为无法识别的 UTF-8 字符——里面有一个问号的菱形。
当我在浏览器(任何浏览器)中手动更改编码时,文本会正确显示。
我想可能是我主机上的服务器强制使用 UFT-8 编码。我已更改 .htaccess 以强制使用 windows-1255 编码,但它不起作用。
我尝试通过 W3C 验证页面,它认为该页面为 UTF-8
我下载了 XAMPP 并在本地运行服务器,但它仍在发生。
在过去的一年里,Apache 提供网页编码的方式有什么变化吗?
在查看所有页面并更改其编码之前,我想知道是否有一个全局“开关”可以翻转以便我的页面正确显示。
谢谢。
最佳答案
经过一番挣扎,一个善良的灵魂帮助我意识到它不是 Apache 覆盖 header 中的字符集,而是 PHP 本身。
添加
header('Content-Type: text/html; charset=windows-1255');
到 PHP 文件的顶部修复了问题。
据我了解,链条如下:
您在页面到达浏览器之前定义的任何内容都将被忽略。
关于apache - 网络服务器覆盖页面编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41478588/