Php rmail类中的特殊字符
我有一个奇怪的问题。我正在使用Richard Heyes的Php rmail类中的特殊字符,php,encoding,utf-8,special-characters,typo3,Php,Encoding,Utf 8,Special Characters,Typo3,我有一个奇怪的问题。我正在使用Richard Heyes的rmail类发送邮件。这个类总是按照预期的那样工作。现在我遇到了一个关于特殊字符的奇怪问题。到目前为止,特殊字符从来都不是问题 我有: $this->mailEncoding = 'UTF-8'; $email->setHeadCharset($this->mailEncoding); $email->setTextCharset($this->mailEncoding); $email->setHTM
rmail
类发送邮件。这个类总是按照预期的那样工作。现在我遇到了一个关于特殊字符的奇怪问题。到目前为止,特殊字符从来都不是问题
我有:
$this->mailEncoding = 'UTF-8';
$email->setHeadCharset($this->mailEncoding);
$email->setTextCharset($this->mailEncoding);
$email->setHTMLCharset($this->mailEncoding);
在本例中,主题是一个字符串,类似于:
…安泰接受(s)
主题用作邮件主题(顶部),然后再次用于内容
这是apple mail中收到的邮件的图像。
你看内容还可以。在主题中,té也可以,但acceptée(s)则不行。
现在当我进入时: …安泰接受(s) 我得到(它有效): 我试过几种组合。例如,“a”起作用。似乎只有“ée”是个问题
- 环境是类型3
- 字符串位于locallang\u db.xml中,作为CDATA
- 我通过pi\u getLL
00:566f7472652f766f73206d616e696665[Votre/vosmanife]
10:73746174696F6E73287329206F6E7420[北区各站]
20:c3 a9 74 c3 a9 20 61 63 65 70 74 c3 a9 65 28[…t..接受..e(]
30:73 29 2e[s]。
是有效的UTF-8,但这是您的邮件客户端读取的内容:
。。。
主题:[……]接受Ã=?UTF-8?Q?=A9?=e。
...
让我们尝试用不同的编码来解释您的资源:
Votre/vos表现ontétéacceptÃe(s)。//CP-1252
Votre/vos(s)ontétéacceptée(s)。//UTF-8
Ã
在字段正文中逐字书写,而U+00A9
是的代码点。我们不能确定,但要么是字符串有问题(您能检查代码并附加任何转换吗?),或者这可能是MIME message builder的问题,据我所知,它是一些rmail库(但我找不到它,所以无法对它进行测试)您应该给我们一个可复制的测试用例。据我所知,呈现消息的程序(Apple Mail)会看到两个字符(双替换字符�) 因此链中的某个地方必须有一个程序,而不是只有一个(acceptée(s)),该程序没有输入正确的编码,并且使用单字节编码(可能是一个代码页,因此可能涉及一些窗口)。我可以问一下您的邮件保存在哪里以及如何检索它们吗?很抱歉,几乎不可能给您一个可复制的测试用例。如上所述,我更新了问题(打字3)。我没有注意到有两个字符的东西。奇怪。Windows几乎不可能。这是一个带有MAMP:-)的iMac。)你能把locallang\u db.xml
放在gist上吗?另外,看到原始邮件也会很有帮助-我不知道Apple Mail,但所有邮件客户端都有一种“显示源代码”功能,可以显示原始邮件,包括邮件头和正文gist: