Golang将UTF16字符串转换为UTF8

时间:2016-10-19 00:29:54

标签: go utf-8 utf-16

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

3 个答案:

答案 0 :(得分:1)

Parse十六进制字符串为整数。使用string conversion将整数转换为UTF-8。

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

playground example

答案 1 :(得分:0)

答案 2 :(得分:0)

您可以尝试lib:codepage detect

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