使用MailKit收取的邮件内容显示乱码

测试使用MailKit收取邮件,收下来的邮件内容,有可能是TextBody,也有可以是HtmlBody。
TextBody是纯文本,HtmlBody的话就是超文本,需要使用WebBrowser来显示。

一开始,我是直接使用WebBrowser的NavigateToString去显示超文本内容,发现部分邮件的内容会显示乱码。
把邮件的HtmlBody保存成HTML文件看了一下,用文本编辑器打开,文本都是正常的,没有出现乱码的情况。
用系统浏览器打开看了一下,内容也是显示正常的,没有出现乱码。
看了一下保存下来的HTML文本,发现里面没有加编码的设置。
个人怀疑HTML文本里面没有指定编码,WebBrowser就自己用默认的编码去解析显示了,编码不匹配,导致乱码。
本来想着有没有办法修改WebBrowser的默认编码,貌似没有接口。

然后目前想的暂时解决办法,就是也先把HtmlBody保存成UTF-8编码格式的HTML文件,然后再WebBrowser的Navigate去打开这个HTML文件。测试后发现目前所有邮件都显示正常。

但是这个方法的缺点是,每个邮件的内容都需要先落盘,增加了磁盘IO,只能说是权宜之策,暂时解决乱码的问题。
后续探索更好的解决方法。

posted @ 2024-10-31 16:27  wzwyc  阅读(15)  评论(0编辑  收藏  举报