繁体   English   中英

.php 网页中的西里尔字符混乱

[英]Cyrillic characters messed up in .php webpage

我所有带有 .php 扩展名和 Cyrillic 编码的文件都可以正常工作多年,但都搞砸了。 可能是因为托管服务提供商升级了 PHP 服务器。

为了说明这个问题,我写了一个最简单的文件,它不会有任何错误: http : //reverent.org/testencoding.php

出于某种原因,网页在浏览器中查看时默认为 unicode。 如果你去查看 -> 文本编码并选择 Cyrillic(Windows) 一切都会好起来的。

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

任何的想法?

现在,我不是这方面的专家,但这让我想起了我遇到的确切问题。 所以..个人经验,这里是(我相信这可能会帮助某人):

我的问题是我在服务器上的文件默认设置为 windows 1251 而不是 UTF-8,这是我需要的。类似的东西。 巧合的是,这就是您的示例的样子。 并且编码是一样的。 我通过使用 WinSCP 访问文件并手动将文件切换到 UTF-8 来修复它……具有讽刺意味的是,您的文件几乎显示了我在我的网站上看到的内容。

在此处输入图片说明

必须有比 WinSCP 更好的方法来做到这一点,但老实说,这是我唯一一次必须手动执行此操作,所以这正是我在那里单击的(打开文件后):

在此处输入图片说明

您也可以尝试使用元标记修复它以告诉浏览器使用哪个字符集,但是如果文件的编码错误,文件在保存时可能会变形。

<meta charset="utf-8">

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

希望它有所帮助或至少为您指明正确的方向:)

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM