【问题标题】:Cyrillic characters are not recognised by utf-8? [duplicate]utf-8 不识别西里尔字符? [复制]
【发布时间】:2016-09-07 20:36:59
【问题描述】:

试图完成此项目,但上传的最终版本中的西里尔字符显示不正确。

它应该是什么样子 - http://codepen.io/valik140795/pen/qadXOo

<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>

它的样子 - http://prnt.sc/cfa68m


不,我的问题不是另一个问题的重复,因为我没有建立服务器,也没有使用任何数据库或表。我是新手。

【问题讨论】:

  • UTF8 应该正确显示西里尔字母
  • 这是一个编码问题。如果没有更多信息,我们不能说更多。您的文本是否使用 utf-8 编码?它是从哪里来的?
  • 您可能还需要将 PHP 标头(可能是文件编码)设置为 UTF8。数据是从数据库中提取的吗?如果是这样,您也需要在此处指定 UTF8。
  • @Federico 我不知道用 utf-8 编码的文本意味着什么,我在 codepen 中提供了源代码。文本来自各种来源,但主要是一个 word 文件。如何将其编码为适当的格式?
  • 打开您的编辑器并使用 utf-8(无 BOM)保存所有这些文件。

标签: php encoding utf-8 cyrillic


【解决方案1】:

以下问题在俄语 php 社区中可能占有一席之地并且很常见:

  1. &lt;META charset&gt; 标签不安装编码,它只是告诉您的浏览器有关编码的信息。因此,如果您的 HTML 编辑器具有 Windows-1251,那么您的浏览器也将使用 Windows-1251 来解释它。如果您不设置&lt;META charset&gt; 标签并在浏览器中安装“自动编码检测”,您可以对此进行测试。在那里你会看到,你的编辑器有哪种编码。

  2. 您可以在 Notepad++ 编辑器中选择要使用的“正确”编码 (utf-8)。只需转换为 utf-8。

  3. 可能您的服务器默认编码是 Windows-1251 - 那么您应该从 .htaccess 服务器文件中删除 AddDefaultCharset windows-1251 并写入 AddDefaultCharset utf-8。

【讨论】:

  • 您的第 3 点实际上为我解决了这个问题。我只是将 AddDefaultCharset utf-8 添加到 htaccess 中,它就起作用了。谢谢!
  • @Valbone 非常好!那么您能否接受我的回答为正确的答案,以便其他人也可以使用我的建议?
猜你喜欢
  • 1970-01-01
  • 2012-04-01
  • 2018-04-22
  • 2015-11-01
  • 1970-01-01
  • 2015-12-04
  • 1970-01-01
  • 2019-08-28
  • 2013-04-26
相关资源
最近更新 更多