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