给出以下输入:
intVal := 2612
strVal := "2612"
有什么机制可以将关联的unicode值映射为字符串。
例如,以下代码打印“☒”
fmt.Println("\u2612")
但是以下方法不起作用:
fmt.Println("\\u" + strVal)
我研究了 rune
strconv
和unicode/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