在Go中将unicode代码点转换为文字字符

假设我有一个这样的文本文件.

\u0053
\u0075
\u006E

有没有办法可以将其转换为此?

S
u
n

目前,我正在使用ioutil.ReadFile(“data.txt”),但是当我打印数据时,我获得了unicode代码点而不是字符串文字.我意识到这是ReadFile的正确行为,它只是不想要我想要的.

我的目标是用他们的文字字符替换代码点.

您可以使用strconv.Unquote()strconv.UnquoteChar()功能进行转换.

您应该注意的一件事是strconv.Unquote()只能取消引号中的引号(例如,以引号char或后引号char`开头和结尾),因此我们必须手动追加它.

看这个例子:

lines := []string{
    `\u0053`,
    `\u0075`,
    `\u006E`,
}
fmt.Println(lines)

for i, v := range lines {
    var err error
    lines[i], err = strconv.Unquote(`"` + v + `"`)
    if err != nil {
        fmt.Println(err)
    }
}
fmt.Println(lines)

fmt.Println(strconv.Unquote(`"Go\u0070\x68\x65\x72"`))

输出(在Go Playground上试试):

[\u0053 \u0075 \u006E]
[S u n]
Gopher <nil>
https://stackoverflow.com/questions/34126749/convert-unicode-code-point-to-literal-character-in-go

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:在Go中将unicode代码点转换为文字字符