【问题标题】:How to convert a string to a byte array which is compiled with a given charset in Go?如何将字符串转换为在 Go 中使用给定字符集编译的字节数组?
【发布时间】:2012-04-06 05:56:06
【问题描述】:

在java中,我们可以使用String的方法:byte[] getBytes(Charset charset)。 此方法使用给定的字符集将字符串编码为字节序列,并将结果存储到新的字节数组中。

但是如何在 GO 中做到这一点? Go中是否有类似的方法可以做到这一点?

请告诉我。

【问题讨论】:

    标签: string character-encoding go byte-shifting


    【解决方案1】:

    标准 Go 库仅支持 Unicode(UTF-8、UTF-16、UTF-32)和 ASCII 编码。 ASCII 是 UTF-8 的子集。

    go-charset 包(来自 here)支持与 UTF-8 的转换,它还链接到 GNU iconv 库。

    另请参阅 encoding/xml.Decoder 中的字段 CharsetReader

    【讨论】:

    • 我不认为 Go 原生支持 UTF-16 或 32,只支持 UTF-8 和 ASCII。任何其他字符集都必须被视为字节切片,并使用诸如 go-charset 之类的包进行正确处理。
    • rune 的类型是 UTF-32。 UTF-16 是包unicode/utf16
    • rune 类型是一个 unicode 代码点,它只是一个 int32 数字,这意味着 []rune 的切片本质上是 utf-32 字符的切片。而且你它支持两者之间的本机转换,所以我想你可以证明 utf-8 和 utf32 是本机支持的。
    【解决方案2】:

    我相信这是一个答案:https://stackoverflow.com/a/6933412/1315563

    如果不自己编写转换或 使用第三方包。你可以尝试使用这个: http://code.google.com/p/go-charset

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-30
      • 2011-12-23
      • 2017-05-20
      • 2014-12-07
      • 2017-02-14
      • 2015-03-15
      • 2022-01-23
      • 1970-01-01
      相关资源
      最近更新 更多