问题描述
我所有具有.PHP扩展名和西里尔字母编码的文件都可以正常工作了好几年。可能是由于托管提供商升级了PHP服务器。
为了说明这个问题,我编写了可能没有任何错误的最简单的文件: http://reverent.org/testencoding.php
由于某种原因,在浏览器中查看时,网页默认为unicode。如果您要查看->文本编码并选择西里尔(Windows),一切都会好起来。
相比之下,具有.html扩展名的相同文件会立即正确显示: http://reverent.org/testencoding.html
有什么主意吗?
解决方法
现在,我还不是专家,但这使我想起了我遇到的确切问题。所以,。个人经验,这是肯定的(我相信这可能对某人有帮助):
我的问题是服务器上的文件默认设置为Windows 1251而不是UTF-8,这是我需要的..这导致这些小野兽出现:代替所有不只是符号的符号基本字母或类似的东西。巧合的是,您的示例如下所示。和编码是相同的。我通过使用WinSCP访问文件并将其手动切换为UTF-8来修复了该问题……具有讽刺意味的是,您的文件显示了我在网站上看到的内容。
必须有比WinSCP更好的方法,但是老实说,这是我唯一一次必须手动执行此操作,因此这正是我在此处单击(打开文件后)的方式:>
您也可以尝试使用meta标签对其进行修复,以告知浏览器要使用的字符集,但是如果文件编码错误,文件在保存时可能会变形。
<meta charset="utf-8">
这可能对您不起作用,但确实对我有用,所以有希望:)
希望它可以帮助您或至少将您指向正确的方向:)
,我只是将带有单行'default_charset =“ windows-1251”'的php.ini文件放入带有西里尔字母编码的文件的目录中。这将覆盖服务器的php.ini,后者将默认字符集设置为UTF。 现在一切都很好:http://reverent.org/ru/testencoding.php