我正在构建一个表情符号统一的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/