【发布时间】:2013-10-29 00:43:55
【问题描述】:
我有一个小问题,我正在使用 .php 页面来显示俄语字符。现在,我以两种不同的方式做到这一点。我从数据库中获取的文本显示正常,但如果我显示这样的文本
<h2>привет </h2> 根本不显示。值得一提的是,我在其中包含了我的导航文件 require_once "navigation.php",我在其中声明了所有元数据等。
所以来自navigation.php:
<meta charset="Cyrillic(Windows-1251)">
到目前为止我尝试过的解决方案:
- 为 .htaccess 添加编码
- 使用php输出header编码
- 使用西里尔字母 (Windows-1251)、UTF8、UTF16、iso-8859-5
- 将文件本身保存为 UTF8
而且我没有想法。我不明白从数据库中回显文本是如何工作的,但 HTML 版本没有。
【问题讨论】:
-
什么是“根本不显示”?我的意思是,你真的一无所获吗?如果是这样,那将是显示文本的问题,而不是编码问题。
-
假设你得到 mojikbake,你能在编码感知编辑器中打开 php 文件吗?这表明编码是什么?而在浏览器中的结果,浏览器认为编码是什么? (例如,使用 Firefox 的“获取页面信息”)
-
@MrLister ,根本不显示意味着空白,没有任何字符。 Firefox认为UTF8是编码,应该可以显示俄文字符?我不确定“显示文本的问题”是什么意思,如果它是混合的,则该段落显示英文,但根本不显示俄文。俄语字符是从Skype convo 复制粘贴的,但我确实尝试简单地输入它们(因此它们不包含元数据),但仍然失败。 Sublime 说 UTF8
-
我的意思是,如果问题只是编码不匹配,那么浏览器会显示 something。上面的文本,由一个认为它是 windows-1252 的程序显示,会显示为
привет,而不是空白。 (即使浏览器根本无法显示西里尔字母,它也应该至少显示正方形或问号。)所以,发生了其他事情。也许您对元数据评论很满意。如果在西里尔文的中间插入一些 ASCII 字符会发生什么?自己输入一些西里尔字母,或者从可信来源、CharMap 或其他东西中复制西里尔字母。 -
或者它可能像被 CSS 隐藏的 h2 元素一样愚蠢。