[英]Hebrew in Html email body is not readable
我正在尝试解析Gmail的电子邮件。 我正在使用Imap方法,到目前为止效果很好。 我的问题是与HTML电子邮件。 我到处搜索了将html正文转换为纯文本的方法,但是对我来说没有任何作用,因此我想自己做。 我正在使用html,清除所有属性,现在遇到编码问题。 我的某些电子邮件使用希伯来语,而html中的希伯来语如下所示:
= F0 = E0 = F6 = F8 = E5 = E0 = E9 = FA = E9 = F7 = F9 = F8 = E1 = E1 = F7 = F9 = E4 = E1 = E8 = EC = F4 = = E5 = EF
我尝试将其从十六进制转换为字符串,但结果并不完美。 有些话不见了。
如何转换为希伯来字符?
非常感谢,埃拉德
似乎您收到的HTML存在一些编码问题。 您将需要将其转换为正确的编码。
这有效:
Encoding latinEncoding = Encoding.GetEncoding("Windows-1252");
Encoding hebrewEncoding = Encoding.GetEncoding("Windows-1255");
string msys = "=F0=E0 =F6=F8=E5 =E0=E9=FA=E9 =F7=F9=F8 =E1=E1=F7=F9=E4 =E1=E8=EC=F4=E5=EF";
msys = System.Web.HttpUtility.UrlDecode(msys.Replace('=', '%').Replace(" ", "%20"), latinEncoding);
byte[] latinBytes = latinEncoding.GetBytes(msys);
string hebrewString = hebrewEncoding.GetString(latinBytes);
问题的第一部分是=F0=E0..
实际上是用开头的URL编码,而不是用%
开头的=
。 因此,我们替换有问题的字符并对其进行UrlDecode 。
之后,我们将其从Windows-1252
编码转换为Windows-1255
编码。
附带说明:您提供的示例字符串中存在问题: =F4= =E5=EF
实际上应该是=F4 =E5=EF
( =
字符始终位于解码部分的前面,而不是后面)
我测试了它,它可以在您的琴弦上正常工作...בהצלחה
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.