2011-05-23 43 views
0

我在想我應該用什麼編碼格式將電子郵件中的特殊字符發送給使用outlook的用戶。我做了我自己的研究,並採用各種方式來做事情,但都沒有爲我工作。我查了前景,它似乎默認情況下,它使用西歐(Windows)格式,因此使用Windows-1252編碼(如果我搜索和理解是正確的)。但是,當我試圖從C#中的Unicode轉換爲Windows-1252編碼時,我的Outlook仍然沒有認識到特殊字符是合法的。例如,下面的一些素不相識的人的名字:使用正確的編碼向使用outlook的用戶發送特殊字符

預期的結果:MONE先生亮採

實際結果(錯誤):先生MONA©Rêve

誰能幫我,我應該採取什麼辦法使上述正確。

我的代碼:

string Fullname = "Mr Moné Rêve"; 
Encoding unicode = new UnicodeEncoding(); 
Encoding win1252 = Encoding.GetEncoding(1252); 

byte[] input = unicode.GetBytes(Fullname);  
byte[] output = Encoding.Convert(unicode, win1252, input); 

string result = win1252.GetString(output); 

回答

0

最後,我去爲我的字符串特殊字符檢查和更改特殊字符到他們的代碼相當於例如E變成é

+0

這將是HtmlEncoding – 2011-05-25 07:21:24

2

沒有 「正確」 的編碼。您應該在HTML中指定字符集。

這是從我收到的電子郵件採取(你可以使用例如前景從電子郵件獲得源代碼):

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> 

當你設置你必須指定什麼編碼的文件的編碼你使用,否則接收者不會知道你使用了哪一個。編碼的聲明可以用您希望使用的任何編碼讀取,因此可以在不知道編碼的情況下閱讀編碼。

閱讀本關於編碼和他們是如何工作的:http://www.joelonsoftware.com/printerFriendly/articles/Unicode.html

+0

謝謝您幫幫我。該鏈接提供了一些有關編碼的詳細信息。但是,在HTML meta charset不起作用。 – 2011-05-24 07:38:57

+0

@Zen你指定了與你使用的編碼相同的編碼嗎? – 2011-05-24 07:42:34

+0

是的。窗口1252。 – 2011-05-25 03:11:24