Golang将UTF16字符串转换为UTF8



我正在构建一个表情符号统一的unicode字符到它们的通用名称的地图。我有字符串代表每个表情符号,在UTF16格式。例如,字符串"00A9"表示版权符号。我需要将其转换为utf8符文,这样我就可以将其与从用户接收的输入进行比较,但是我还没有找到正确的hex/utf16/utf8包的符文。

将十六进制字符串解析为整数。使用字符串转换将整数转换为UTF-8。

n, err := strconv.ParseInt("00A9", 16, 32)
if err != nil {
    log.Fatal(err)
}
s := string(rune(n))

操场示例

您可以尝试lib: codepage detect

s := "..."
s = cpd.DecodeUTF16be(s)
s = cpd.DecodeUTF16le(s)

Go中有unicode包

  • https://golang.org/pkg/unicode/utf16/
  • https://golang.org/pkg/unicode/utf8/

最新更新