我尝试在 Go 中获取字符串字符的 unicode 值作为 Int 值。
我这样做:
value = strconv.Itoa(int(([]byte(char))[0]))
其中 char 包含一个带有一个字符的字符串。
这适用于许多情况。它不适用于 ä, ö, ü, Ä, Ö, Ü 等元音变音。
例如 Ä 的结果是 65,这与 A 的结果相同。
我怎样才能做到这一点?
补充:我有两个问题。第一个是通过以下任何答案解决的。第二个有点棘手。我的输入不是 Go 规范化的 UTF-8 代码,例如变音符号由两个字符而不是一个字符表示。正如ANisus所说,解决方案可以在golang.org/x/text/unicode/norm包中找到。上面的行现在是两行:
rune, _ := utf8.DecodeRune(norm.NFC.Bytes([]byte(char)))
value = strconv.Itoa(int(rune))
任何使这个更短的提示都受欢迎......
红糖糍粑
潇湘沐
相关分类