Character encoding Go-来自电子邮件的故障保护字符集

Character encoding Go-来自电子邮件的故障保护字符集,character-encoding,go,Character Encoding,Go,我有一大堆电子邮件,我决定在围棋中处理。 很好地解析所有内容(头、多部分) 如何将所有电子邮件文本转换为UTF-8 我从Content-Type字段中读取编码名称,并使用mime.ParseMediaType 我相信有些电子邮件可能有编码错误。 e、 g.单个正文中的错误编码或多个编码 因此,如果有一个错误的字符,但99%的文本是可读的。我希望能读懂它 PS 在go to work with charset中有LIB。 还有一组iconv包装器,如 我认为first缺少编码,它确实通过编码名称给

我有一大堆电子邮件,我决定在围棋中处理。 很好地解析所有内容(头、多部分)

如何将所有电子邮件文本转换为
UTF-8

我从
Content-Type
字段中读取编码名称,并使用
mime.ParseMediaType

我相信有些电子邮件可能有编码错误。 e、 g.单个正文中的错误编码或多个编码

因此,如果有一个错误的字符,但99%的文本是可读的。我希望能读懂它

PS

在go to work with charset中有LIB。 还有一组
iconv
包装器,如

我认为first缺少编码,它确实通过编码名称给出了解码器。我不确定我是否知道编码的所有同义词。 e、 g.UTF-8和utf8是相同的编码。Windows-1251和CP-1251也相同


第二个是iconv包装器。围棋是安全的语言,这就是为什么我希望在围棋中这样做。没有缓冲区溢出。但是
iconv
是用C编写的,安全性较差。我知道

如果出现问题,您需要提供一些代码,Go中的字符串默认为utf8。这似乎是一个合法的问题:在互联网上发送的电子邮件有时用传统的字符集编码(拉丁语iso-8859-1、西里尔语KOI8-R、中文GB 18030)如何将它们转换为Go内部使用的UTF-8编码并不明显。请参阅,以了解在Go中遇到此问题的其他人。的
解析器
子包似乎试图处理两个头(通过
parser.MimeHeaderDecode
utils.Go
中定义)和正文(通过
parser.fixencoding和charsetofpart
)。我不知道整合到你正在做的事情中有多容易,但至少这是一个线索。确切地说,与charset一起工作有很多LIB。或者像第一个一样的iconv包装是原生Go,但我认为它缺少编码。第二个不是本地围棋