【问题标题】:special chars in rmail classrmail 类中的特殊字符
【发布时间】:2014-03-25 10:11:17
【问题描述】:

我有一个奇怪的问题。我正在使用 Richard Heyes 的 rmail 类来发送邮件。此类始终按预期工作。现在我遇到了一个奇怪的问题特殊字符。直到现在,特殊字符都不是问题。

我有:

$this->mailEncoding = 'UTF-8';
$email->setHeadCharset($this->mailEncoding);
$email->setTextCharset($this->mailEncoding);
$email->setHTMLCharset($this->mailEncoding);

在这种情况下,主题是一个字符串,如:

...ont été acceptée(s)

主题被用作邮件主题(顶部),然后再次出现在内容中

这是苹果邮件中收到的邮件的图像。


你看内容没问题。在主题中,été 也可以,但接受者不是。
现在当我进入时:

...ont été acceptétée(s)

我明白了(它有效):

我尝试了几种组合。例如 "à" 有效。好像只有"ée"有问题

  • 环境是TYPO3
  • 字符串位于 locallang_db.xml 中,为 CDATA
  • 我通过 pi_getLL 获得它们

原始:

00 : 56 6f 74 72 65 2f 76 6f 73 20 6d 61 6e 69 66 65 [Votre/vos manife]    
10 : 73 74 61 74 69 6f 6e 73 28 73 29 20 6f 6e 74 20 [stations(s) ont ]    
20 : c3 a9 74 c3 a9 20 61 63 63 65 70 74 c3 a9 65 28 [..t.. accept..e(]    
30 : 73 29 2e                                        [s).

【问题讨论】:

  • 你应该给我们一个可重现的测试用例。就我所见,呈现消息的程序(Apple Mail)看到 两个字符(双替换字符 �)而不是一个(acceptée(s )),因此在链中的某处必须有一个程序,它没有为输入提供编码权,并且使用单字节编码(可能是代码页,所以可能涉及一些 Windows)。请问您将邮件保存在哪里以及如何检索它们?
  • 对不起,几乎不可能给你一个可重现的测试用例。见上文,我更新了问题(TYPO3)。 两个字符的东西我没注意到。奇怪的。窗户几乎是不可能的。这是带有 MAMP 的 iMac :-)
  • 你能把locallang_db.xml 放在要点上吗?
  • 另外,查看原始电子邮件会很有帮助 - 我不知道 Apple Mail,但所有邮件客户端都有一种“显示源”功能,可以显示原始邮件,两个标题和身体

标签: php encoding utf-8 special-characters typo3


【解决方案1】:

input file 是有效的 UTF-8,但这是您的邮件客户端读取的内容:

...
Subject: [...] acceptÃ=?UTF-8?Q?=A9?=e.
...

让我们尝试用不同的编码来解释你的资源:

Votre/vos manifestations(s) ont été acceptée(s). // CP-1252
Votre/vos manifestations(s) ont été acceptée(s).    // UTF-8

à 在字段正文中逐字写入,而U+00A9copyright symbol 的代码点。我们无法确定,但要么你对字符串做错了(你能检查你的代码并附加任何转换吗?),或者它可能是 MIME 消息生成器的问题,据我所知,是一些 rmail 库(但我找不到它,所以无法测试它)

【讨论】:

    猜你喜欢
    • 2014-11-03
    • 2015-11-23
    • 1970-01-01
    • 1970-01-01
    • 2015-10-21
    • 2012-09-08
    • 2011-07-28
    • 2010-09-21
    • 2014-06-29
    相关资源
    最近更新 更多