簡體   English   中英

使用c#從xml獲取文本時設置System.Net.Mail.MailMessage主體的編碼

[英]setting the encoding of a System.Net.Mail.MailMessage body while getting text from xml using c#

我正在嘗試設置MailMessage主體的編碼,以便它能夠顯示德語的“變音符”(ä,ö,ü)。 我從xml文件中獲取消息文本。 xml的編碼是iso-8859-1 ,也是MailMessage主體。

MailMessage msg = new MailMessage();
msg.From = new MailAddress(sFrom);
msg.To.Add(sTo);
msg.Subject = sSubject;
msg.Body = sBody;
msg.IsBodyHtml = true;
msg.BodyEncoding = Encoding.GetEncoding("iso-8859-1");

xml的第一行是這樣的:

<?xml version="1.0" encoding="iso-8859-1"?>

我也嘗試了UTF8Unicode編碼,但這都無濟於事。 身體仍然無法顯示變音。

我有什么特別需要注意的,還是我使用的編碼錯誤?

編輯:這是一個Windows窗體應用程序,並且我正在使用.NET Framework 4.5.2

EDIT2:我正在使用XmlSerializer來獲取xml數據。

XmlSerializer xSerializer = new XmlSerializer(typeof(App));

using (StreamReader srXml = new StreamReader(_sFileName))
{
    _oAppConfig = (App)xSerializer.Deserialize(srXml);
}

請注意, App是我為自己創建的類。

嘗試在讀取文件時指定編碼,例如:

XmlSerializer xSerializer = new XmlSerializer(typeof(App));

using (StreamReader srXml = new StreamReader(_sFileName, Encoding.GetEncoding("iso-8859-1")) )
{
    _oAppConfig = (App)xSerializer.Deserialize(srXml);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM