【发布时间】:2019-11-06 18:58:02
【问题描述】:
我正在尝试使用 utf8 十六进制代码生成连续字符。例如第一部分,我称之为“基本”代码:259 第二部分,我称之为“结束”代码:1(或、2、或 A、或 F 等)
这些以字符串的形式出现。一旦我附加结束代码并获得一个完整的字符串(即:259E),我如何将其转换为实际的 utf8 表示(或“字符”)
我不知道从哪里开始。我知道string(rune('\u259E') 会给我表示(▞),但我不知道如何将字符串作为(单引号)utf8 字符代码放入符文转换中。
package main
import "fmt"
func main() {
s1 := "259"
s2 := "E"
s3 := "\\u"+s1+s2
fmt.Println(s3)
fmt.Println(string(rune('\u259E')))
}
期望的结果是我能够从生成的代码字符串表示中返回一个 utf8 字符(以及可能的代理对)。
总体要点(例如)是我希望字符串值“272A”返回为:✪
【问题讨论】:
-
\u1F606 是 UTF-32 代码点而不是 UTF-8。
-
据我了解,这是一对替代品。但同样,我现在并不太关心支持“高阶”编码。请原谅我对 utf-8 与 utf-32 的细微差别的无知。
-
@bennowak
\u1F606不是代理对。这看起来像\uD83D\uDE06。
标签: string go utf-8 unicode-literals rune