1

我正在使用 System.Net.Mail,并且正在将 html 读入电子邮件正文。

不幸的是,撇号字符'显示为带有黑色背景的问号。

我试图用 html 替换撇号,'但这仍然显示带有黑色背景的问号。其他 Html 标签(h1、p 等)工作正常。

我现在必须有一个非常明显的答案,但我似乎找不到它。谢谢你的帮助。

更新

看来是 System.IO.StreamReader 导致了我的问题。

using (StreamReader reader = new StreamReader("/Email/Welcome.htm"))
{
     body = reader.ReadToEnd(); 
     //body string now has odd question mark character instead of apostrophe.
}
4

2 回答 2

2

如果您知道文件的编码,则需要将其传递给StreamReader初始化:

using (StreamReader reader = new StreamReader("/Email/Welcome.htm", "Windows-1252"))
{
     body = reader.ReadToEnd();
     // If the encoding is correct you'll now see ´ rather than �
     // Which, by the way is the unicode replacement character
     // See: http://www.fileformat.info/info/unicode/char/fffd/index.htm
}
于 2012-09-20T04:06:12.047 回答
0

您需要将此文件保存为 unicode utf-8 格式以使其正确。

于 2012-09-19T08:56:40.933 回答