给出以下输入:

intVal := 2612
strVal := "2612"

有什么机制可以将关联的unicode值映射为字符串。

例如,以下代码打印“☒”
fmt.Println("\u2612")

但是以下方法不起作用:
fmt.Println("\\u" + strVal)

我研究了 rune strconvunicode/utf8,但找不到合适的转换策略。

最佳答案

2612不是unicode rune 的整数值,\u2612的整数值为9746。字符串"2612"是 rune 的十六进制值,因此将其解析为十六进制数字并将其转换为rune

i, err := strconv.ParseInt(strVal, 16, 32)
if err != nil {
    log.Fatal(err)
}
r := rune(i)
fmt.Println(string(r))

https://play.golang.org/p/t_e6AfbKQq

09-18 17:49