【问题标题】:Character encoding for French Accents法语口音的字符编码
【发布时间】:2011-04-16 22:21:19
【问题描述】:

我正在为一位法国客户开发我的第一个网站,但我遇到了口音显示为“?”的大量问题。在谷歌上搜索了几天后,我以为我理解了,但问题仍然存在。

为简化起见,我将仅解释电子邮件标题(邮件包含法语口音)

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

我尝试过使用字符集 UTF-8 和 iso-8859-1,但我仍然收到这种类型的电子邮件:

Merci pour votre intérêt pour les tee shirts. 

有人可以帮忙吗?我基本上到处都有 mySql、HTML、PHP 的这些问题。

谢谢。

【问题讨论】:

  • 听起来问题出在输入上。您必须知道输入文本中的字符集是什么,并可能对其进行转换。我不知道该怎么做。
  • 谢谢。这是正确的方向。

标签: php email diacritics


【解决方案1】:

如果intérêt 显示为intérêt,您很可能(即由于双重编码而没有损坏)将 UTF-8 编码的文本显示为 ISO-8859-1。

确保标头格式正确,并将内容显示为 UTF-8 编码。

【讨论】:

  • 你可能是对的。我有一个函数可以将重音字符转换为 html 实体,然后以 iso-8859-1 显示内容。我去看看。
  • 我最终只是将标题放入 utf-8 并取出我拥有的任何编码。似乎现在正在工作。谢谢。
  • 很棒的收获。我没有意识到这种特殊的字符伪像与将 UTF-8 作为 ISO-8859-1 发送有关。在 Rails 3 中,我使用 send_data 发送带有重音符号的文件。您只需要将“charset=utf-8”附加到 :type 参数。甜!
【解决方案2】:

首先,将标头中的字符集再次设为UTF8。

在您的页面中,在适当的地方使用utf8_encode() 以确保来自数据库或外部文件的值被正确编码(尝试将数据库中字段的编码也设置为 UTF8)

另外,看看htmlentities() 函数将特殊字符解析为html实体,这也可以解决编码问题。

【讨论】:

    【解决方案3】:

    默认情况下,除法语以外的所有其他语言对我来说都很好

    在我的 /fr/messages.php 文件中,我可以用

    解决这个问题
    'myKey' => utf8_encode('en français'),
    

    【讨论】:

      猜你喜欢
      • 2011-06-10
      • 2023-03-08
      • 2013-11-18
      • 2012-09-05
      • 1970-01-01
      • 2011-12-29
      • 1970-01-01
      • 1970-01-01
      • 2011-01-22
      相关资源
      最近更新 更多