登录
首页 >  Golang >  Go问答

在Golang中如何将文件编码转换为UTF-8?

来源:stackoverflow

时间:2024-02-24 18:15:26 312浏览 收藏

大家好,我们又见面了啊~本文《在Golang中如何将文件编码转换为UTF-8?》的内容中将会涉及到等等。如果你正在学习Golang相关知识,欢迎关注我,以后会给大家带来更多Golang相关文章,希望我们能一起进步!下面就开始本文的正式内容~

问题内容

我必须编写代码来检查字幕文件编码,如果不是utf-8,请将编码更改为它。为了让文件编码类型,我在 golang 中编写了这个函数:

func CheckEncoding(filePath string) (encode string, err error) {

    content, _ := os.ReadFile(filePath)
    contentType := http.DetectContentType(content)
    encode = strings.Split((strings.Split(contentType, " "))[1], "=")[1]

    return encode, err
}

通过这个函数,我得到了字幕编码。之后,我想检查编码是否不等于“utf-8”转换为此并使用此新编码(utf-8)将字幕保存在新文件中,但我不知道该怎么做它。

我使用了 iconv 包,但无法将输出保存在新文件中。 我读到的另一件事是这个答案,但它太复杂了,对我没有帮助。所有其他答案都是关于转换字符串编码的。


正确答案


用它来检查编码是否为utf-8

e, _, _ := charset.determineencoding(content, "")

然后转换并保存到新文件

// Convert the string to UTF-8
utf8Content, err := e.NewDecoder().Bytes(content)
if err != nil {
    log.Fatal(err)
}

// Save the file as UTF-8
err = ioutil.WriteFile(filename, utf8Content, 0644)
if err != nil {
    log.Fatal(err)
}

我还没有测试这段代码。只需草稿即可获得想法。

好了,本文到此结束,带大家了解了《在Golang中如何将文件编码转换为UTF-8?》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>