% U Формат Unicode: U + 1234; то же, что и "U +% 04X"
Ответ 6
Я хотел бы добавить к ответу, который имеет hardPass.
В случае, когда шестнадцатеричное представление юникода меньше 4 символов (например, ü), strconv.FormatInt приведет к \ufc что приведет к ошибке синтаксиса юникода в Go. В отличие от полной \u00fc которую понимает Go.
Заполнение гексагона нулями с помощью fmt.Sprintf с шестнадцатеричным форматированием исправит это:
func RuneToAscii(r rune) string {
if r < 128 {
return string(r)
} else {
return fmt.Sprintf("\\u%04x", r)
}
}