gpt4 book ai didi

mongodb - 在 Go 中将任何编码转换为 UTF 8

转载 作者:IT王子 更新时间:2023-10-29 01:33:45 25 4
gpt4 key购买 nike

我正在通过 IMAP 下载邮件。接下来,我将已解析的消息添加到 MongoDB 中。我有一个问题,因为 MongoDB 仅支持 UTF 8。我想将任何编码转换为 UTF 8。代码多种多样。如何将每个字符串转换为 UTF 8?

我知道,我可以转换为二进制,但我必须有普通文本,因为我必须在数据库中搜索短语。除非,我可以用二进制搜索普通文本吗?

最佳答案

我正在使用 go-charset 项目来执行此操作:https://code.google.com/p/go-charset/

非常简单,您从字符集创建一个阅读器,它会自动转换为 utf-8。来自图书馆的例子:

r, err := charset.NewReader(strings.NewReader("\xa35 for Pepp\xe9"), "latin1")
if err != nil {
log.Fatal(err)
}
result, err := ioutil.ReadAll(r)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%s\n", result) //outputs £5 for Peppé

现在,在我的例子中,我知道字符集,因为它来自网页,并且我阅读了 header /元标记。如果您需要通过启发式自动检测字符集,您将需要另一个库,例如这个库:https://github.com/saintfish/chardet

我没用过,但它看起来也很容易使用:

detector := chardet.NewTextDetector()
result, err := detector.DetectBest(some_text)
if err == nil {
fmt.Printf(
"Detected charset is %s, language is %s",
result.Charset,
result.Language)
}

关于mongodb - 在 Go 中将任何编码转换为 UTF 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27297328/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com