繁体   English   中英

HTML电子邮件正文中的希伯来语不可读

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM