2012-11-08 20 views
1

當我開發我的電子郵件客戶端時,遇到了問題。我發現中文電子郵件附件的名稱是亂碼,當我發送帶有附件的電子郵件時,該附件的名稱包括中文從我的應用程序到電子郵件服務器,如果返回服務器。但它在電子郵件服務器上是正確的。另外,當我發送附件名稱包含來自另一客戶端的附件的電子郵件時,一切正常。感謝你所做的一切!如何在C#中將字符串從「GBK」轉換爲「UTF-8」?

+1

哇,很好的用戶名! – deerchao

+0

我會建議檢查您的電子郵件發送相關的圖書館類,如果有任何相關的編碼,並與它一起玩。 – deerchao

+0

非常感謝!但是,從我的客戶端發送的電子郵件在電子郵件服務器上看起來很正常。 – Administrator

回答

2

你的意思是字符串存儲在一個字節數組中嗎?

 string strSource = "abcdefg"; 
     byte[] array2=Encoding.GetEncoding("gbk").GetBytes(strSource); 

     //get string from gbk 
     string str = Encoding.GetEncoding("gbk").GetString(array2); 

     //convert string to utf-8 
     byte[] array3 = Encoding.UTF8.GetBytes(str); 

=================回答下面編輯,2016年8月1日=============

你應該用gbk來讀取附件的中文名稱,然後你將電子郵件內容改爲其他地方使用utf-8或gbk。 你可以試一試。