如何将utf8文字(即'\ u1F606')转换为符文? (不要从符文中获取UTF8!)

时间:2019-06-25 00:57:29

标签: string go utf-8 unicode-literals rune

我正在尝试使用utf8十六进制代码生成连续字符。例如,第一部分是“基本”代码:259 第二部分,Im'表示“结束”代码: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”返回为:✪

1 个答案:

答案 0 :(得分:1)

将十六进制值解析为int32。

然后将该值转换为rune中的println

package main

import "fmt"
import "strconv"

func main() {
    s1 := "259"
    s2 := "E"
    s3, err := strconv.ParseInt(s1+s2, 16, 32)
    fmt.Println(string(rune(s3)))
    fmt.Println(err)
}