【发布时间】:2015-04-28 20:51:24
【问题描述】:
我正在使用 IMAP 类来阅读电子邮件。当我的邮件正文包含 Ö IMAP 时返回十六进制值:=C3=96。如何将其转换为 utf-8 Ö?
我在想这样的事情:
Encoding enc = Encoding.GetEncoding("UTF-8);
System.Byte[] ch = new System.Byte[1];
ch[0] = System.Convert.ToByte([hex value of Ö], 16);
var decodedItem = enc.GetString(ch);
decodedItem 的期望值为 Ö。但我真的不知道为什么 Ö 在 IMAP 中转换为 =C3=96,我无法将其发送到 ToByte(),因为 =C3=96 不是真正的十六进制值。
我也试过这样做:
Encoding enc = Encoding.GetEncoding("UTF-8);
System.Byte[] ch = new System.Byte[1];
ch[0] = 214;
var decodedItem = enc.GetString(ch);
但decodedItem中的值是=
【问题讨论】:
-
已经是utf-8了。但编码为文本而不是字节。该编码称为quoted-printable。现在你知道用谷歌搜索什么了,“.net decodequoted-printable text”。第一击很好。
标签: c# encoding utf-8 hex imap