如何在Go中从编码转换为UTF-8?

阿里·巴赫拉米(Ali Bahrami):

我正在一个项目中,我需要将文本从编码(例如Windows-1256阿拉伯语)转换为UTF-8。

我该如何在Go中执行此操作?

rob74:

您可以使用编码包,该编码包通过该包包括对Windows-1256的支持golang.org/x/text/encoding/charmap(在下面的示例中,导入该包并使用charmap.Windows1256代替japanese.ShiftJIS)。

这是一个简短的示例,该示例将日语UTF-8字符串编码为ShiftJIS编码,然后将ShiftJIS字符串解码回UTF-8。不幸的是,它在操场上不起作用,因为操场上没有“ x”包装。

package main

import (
    "bytes"
    "fmt"
    "io/ioutil"
    "strings"

    "golang.org/x/text/encoding/japanese"
    "golang.org/x/text/transform"
)

func main() {
    // the string we want to transform
    s := "今日は"
    fmt.Println(s)

    // --- Encoding: convert s from UTF-8 to ShiftJIS 
    // declare a bytes.Buffer b and an encoder which will write into this buffer
    var b bytes.Buffer
    wInUTF8 := transform.NewWriter(&b, japanese.ShiftJIS.NewEncoder())
    // encode our string
    wInUTF8.Write([]byte(s))
    wInUTF8.Close()
    // print the encoded bytes
    fmt.Printf("%#v\n", b)
    encS := b.String()
    fmt.Println(encS)

    // --- Decoding: convert encS from ShiftJIS to UTF8
    // declare a decoder which reads from the string we have just encoded
    rInUTF8 := transform.NewReader(strings.NewReader(encS), japanese.ShiftJIS.NewDecoder())
    // decode our string
    decBytes, _ := ioutil.ReadAll(rInUTF8)
    decS := string(decBytes)
    fmt.Println(decS)
}

Japanese StackOverflow网站上有一个更完整的示例。文字为日语,但代码应不言自明:https//ja.stackoverflow.com/questions/6120

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在外壳中查找文件编码类型或将任何编码类型转换为UTF-8?

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

如何在混合编码目录中将GBK转换为UTF-8?

如何在Kotlin中将win1251编码转换为UTF8?

在sqlplus中如何更改或将特定文件编码转换为utf8

如何在不通过ruby的UTF-8的情况下将编码从ASCII-8BIT转换为另一种编码?

如何从字符串中识别UTF-8编码的文本并将其转换为Swift中的smiley \ emoticon

如何在Python中将文件转换为utf-8?

如何在Java中将HTML转换为UTF-8

如何在改造android中设置utf-8编码?

如何在RStudio中检测非UTF-8编码

如何在golang中以UTF-8编码gob?

如何在Python中编码(utf8mb4)

如何在Python中修复损坏的utf-8编码?

如何在R中读取utf-8编码的文本

在Go语言中使用C库时,如何正确将UTF-8编码的char数组转换为Go字符串?

如何在Python中将文本文件(包含非英语语言的文本)的编码从“ UTF-16 LE”转换为“ UTF-8”?

如何将以utf16编码的字符串转换为以UTF-8编码的字符串?

如何将 NSString 转换为 UTF-8 以外的编码?

如何将错误编码的数据转换为UTF-8?

如何使用python将多个excel文件转换为CSV utf-8编码

将已知编码的文件转换为UTF-8

使用UTF8编码将Excel转换为CSV

将UTF-8编码的NSData转换为NSString

将编码的 html 实体转换为 utf-8

Go和UTF-8编码-转换是自动的吗?

如何将大UTF-8编码的char *字符串转换为CStringW(UTF-16)?

在C#中如何将未编码的字符转换回UTF-8?

如何在PHP中将m3u8转换为base64编码?