【问题标题】:Why my page cannot display é, instead, showing �?为什么我的页面不能显示é,而是显示�?
【发布时间】:2011-09-22 14:12:29
【问题描述】:

我已在 HTML 中将页面编码设置为 UTF-8:

meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8"

在 HTTP 标头中,我有:

Content-Type    text/html; charset=UTF-8

为什么 é 没有正确显示?


更新:
包含é的数据是从互联网上抓取的;爬虫是用 Microsoft .Net 编写的。 我使用 MySQL .Net Connector 连接 MySQL。

显示é的页面是用PHP编写的。

【问题讨论】:

  • 你的文件真的是用 utf-8 编码的吗?尝试强制您的浏览器编码为 latin1/iso-8859-1 或将您的标头更改为那个。
  • é 来自哪里?数据库或嵌入在 PHP 文件中的字符串中?
  • 嗨 Salman A,'é' 来自数据库,我使用 phpmyadmin 检查数据库,没问题,我可以正确看到 'é'。抓取到html页面后,问题就来了。

标签: html character-encoding


【解决方案1】:

如果你真的使用htmlentities(),你可以解码一段特定的代码,比如

htmlentities($string, $flags, $charset);

这将对字符串进行编码。 使用 $flags,您可以在一定程度上决定要编码的内容。

这个功能可以用来防止sql注入

虽然此参数在技术上是可选的,但如果您使用的是 PHP 5.5 或更早版本,或者您的 default_charset 配置选项可能针对给定输入设置不正确,我们强烈建议您为代码指定正确的值。

编辑:来源htmlspecialchars

【讨论】:

    【解决方案2】:

    遇到同样的问题,即使使用 html 设置 charset=UTF-8 只需使用记事本和使用 UTF-8 编码的 File-SaveAs 打开 html 页面 重新加载页面,应该没问题。

    史蒂夫

    【讨论】:

      【解决方案3】:

      您需要添加更多信息,但 通常表示数据中被视为 UTF-8 的 ISO-8859-1 字符。

      它来自

      • 声称是 UTF-8,但实际上保存为 ISO-8859-1/Windows-8252 的源文件 - 在编辑器或 IDE 中检查文件编码

      • 即使数据库表是 UTF-8 也使用 ISO-8859-1 的数据库连接

      【讨论】:

      • 嗨佩卡,感谢您的回复。我已将mysql连接的默认字符集设置为utf8。我将我的 html 保存到本地文件中。用记事本++打开它,它告诉我该文档是“在没有BOM的情况下以UTF-8编码”。这是否意味着我的 html 页面是用 UTF-8 编码的?
      • @syking 在这种情况下,您的数据库连接可能不是 UTF-8。见How can I store the '€' symbol in MySQL using PHP?
      • 哦,对不起,我忘了提一下,我的数据库、表和字段都是 utf-8 格式并使用 utf8_general_ci 排序规则。这就是为什么我自己无法弄清楚的原因。
      • @syking 阅读了链接的答案。 连接也需要切换到UTF-8。
      【解决方案4】:

      确保您的文件的开头没有BOM (byte order mark)。我最近遇到了这个问题,即使文件被保存为 utf8(检查了几次),BOM 混淆了 firefox 并且错误地显示了元音变音(我将 html <meta> 标签设置为正确的编码和 http 标头)

      【讨论】:

        【解决方案5】:

        最可能的解释是页面没有使用 UTF-8 编码,所以当浏览器尝试解码文本时,它使用了错误的编码。

        您需要确保actual document encodingclaimed encoding 匹配

        【讨论】:

          猜你喜欢
          • 2013-08-30
          • 2023-03-19
          • 2018-09-09
          • 2017-11-24
          • 2021-11-26
          • 2017-11-21
          • 2011-11-21
          • 2018-07-07
          • 1970-01-01
          相关资源
          最近更新 更多