西里尔字母混乱在.php网页中

问题描述

我所有具有.PHP扩展名和西里尔字母编码的文件都可以正常工作了好几年。可能是由于托管提供商升级PHP服务器。

为了说明这个问题,我编写了可能没有任何错误的最简单的文件http://reverent.org/testencoding.php

由于某种原因,在浏览器中查看时,网页认为unicode。如果您要查看->文本编码并选择西里尔(Windows),一切都会好起来。

相比之下,具有.html扩展名的相同文件会立即正确显示http://reverent.org/testencoding.html

有什么主意吗?

解决方法

现在,我还不是专家,但这使我想起了我遇到的确切问题。所以,。个人经验,这是肯定的(我相信这可能对某人有帮助):

我的问题是服务器上的文件默认设置为Windows 1251而不是UTF-8,这是我需要的..这导致这些小野兽出现:代替所有不只是符号的符号基本字母或类似的东西。巧合的是,您的示例如下所示。和编码是相同的。我通过使用WinSCP访问文件并将其手动切换为UTF-8来修复了该问题……具有讽刺意味的是,您的文件显示了我在网站上看到的内容。

enter image description here

必须有比WinSCP更好的方法,但是老实说,这是我唯一一次必须手动执行此操作,因此这正是我在此处单击(打开文件后)的方式:>

enter image description here

您也可以尝试使用meta标签对其进行修复,以告知浏览器要使用的字符集,但是如果文件编码错误,文件在保存时可能会变形。

<meta charset="utf-8">

这可能对您不起作用,但确实对我有用,所以有希望:)

希望它可以帮助您或至少将您指向正确的方向:)

,

我只是将带有单行'default_charset =“ windows-1251”'的php.ini文件放入带有西里尔字母编码的文件的目录中。这将覆盖服务器的php.ini,后者将默认字符集设置为UTF。 现在一切都很好:http://reverent.org/ru/testencoding.php