2014-03-25 60 views
0

我有一個奇怪的問題。我正在使用Richard Heyes的rmail班發送郵件。這個類一直按預期工作。現在我遇到了奇怪的問題特殊字符。特殊字符直到現在從來都不是問題。rmail類中的特殊字符

我有:

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

在這種情況下,受試者是一個字符串,如:

... ONT ETEacceptée(S)

受試者被用作郵件主題(頂部),然後再次在內容中

這是接收到的m所有蘋果郵件。 This is an image of the received mail in apple mail.


您將看到的內容是確定的。在主題été也可以,但acceptée(s)不是。
現在,當我進入:

... ONT ETEacceptétée(S)

我得到(它的工作原理):

This is an image of the received mail in apple mail.

我試了好幾種組合。例如「à」工作。似乎只有「EE」是一個問題

  • 的環境TYPO3
  • 字符串位於locallang_db.xml爲CDATA
  • 我通過讓他們pi_getLL

RAW:

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). 
+0

你應該給我們是一個可重複的測試案例。對於我所看到的,呈現消息的程序(Apple Mail)會看到**兩個字符**(雙重替換字符instead)而不是一個(接受**é** e(s)),所以必須是一個程序,在鏈中的某個地方,沒有輸入編碼權限,並且使用單字節編碼(可能是代碼頁,所以也許會涉及一些Windows)。我可以問你在哪裏留言以及如何找回他們? – Raffaele

+0

對不起,它幾乎不可能給你一個可重複的測試用例。見上面,我更新了這個問題(TYPO3)。 **兩個字符**我沒有注意到。奇怪。 Windows幾乎不可能。這是一個帶MAMP的iMac :-) – avarx

+0

你可以把'locallang_db.xml'放在要點上嗎? – Raffaele

回答

0

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庫(但我找不到它,所以不能測試它)