【问题标题】:Accented/encoded characters are not displaying properly重音/编码字符无法正确显示
【发布时间】:2011-12-27 11:57:10
【问题描述】:

内容:

      Crescimento da economia Trabalhador com baixa remuneração ocupa 63% das vagas no país 

但是这会显示在一个 PHP 页面中

      Crescimento da economiaTrabalhador com baixa remuneração ocupa 63% das vagas no país 

如何使用正确的编码转换字符?我应该使用什么函数来获得与上述相同的内容而没有像“çÔ这样的任何字符

【问题讨论】:

  • 看起来您使用了错误的字符编码。你从哪里获取字符串?你用什么编码保存文件?您在 HTTP 标头中发送什么编码?您应该在任何地方使用相同的编码,并且该编码最好是 UTF-8。
  • 我正在从使用“UTF-8”的网页中获取这些内容,并将其显示在也使用“UTF-8”的页面中是否有任何方法可以检测到该字符串是字符编码不正确?
  • 您是否使用 UTF-8 编码保存文件?有时,编辑者会在前面加上一个字节顺序标记 (BOM),这可能会搞砸事情。问题是,如果不了解如何您为内容编码类型提供服务,我们将无能为力。

标签: php character-encoding


【解决方案1】:

症状很明显:当字符 ç 和 ã 以 UTF-8 编码出现在数据中(作为字节对 C3 A7 和 C3 A3)但数据是根据 ISO-8859-1 或某种类似编码解释时,您获得 ç 和 ã(如 ISO-8859-1 中的 à = C3、§ = A7 和 £ = A3)。因此,您可能会获得正确的数据,但您放置数据的页面不是 UTF-8 编码的;请注意,如果 HTTP 标头指定了编码,则它们将覆盖文档中的 <meta> 标记。

【讨论】:

    【解决方案2】:

    前面的评论是正确的。尝试使用 PHP 函数 mb_convert_encoding 以及页面标题中的元标记,如果可能的话,标题以确保您以正确的编码呈现您的内容。

    【讨论】:

      猜你喜欢
      • 2014-01-04
      • 2011-04-24
      • 1970-01-01
      • 2017-02-07
      • 2013-10-05
      • 1970-01-01
      • 2021-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多