Используйте следующую функцию для преобразования руны, указанной в формате \Uxxxxxxxx
, в фактическую руну:
func unquoteCodePoint(s string) (rune, error) {
// 16 specifies hex encoding
// 32 is size in bits of the rune type
r, err := strconv.ParseInt(strings.TrimPrefix(s, "\\U"), 16, 32)
return rune(r), err
}
Вариант - преобразовать в строку вместо руны:
func unquoteCodePoint(s string) (string, error) {
r, err := strconv.ParseInt(strings.TrimPrefix(s, "\\U"), 16, 32)
return string(r), err
}
Используйте строковую версию следующим образом:
s, err := unquoteCodePoint("\\U0001f47f")
if err != nil {
// handle error
}
fmt.Printf("%s\n", s) // prints ?