假设我有一个这样的文本文件。
\u0053
\u0075
\u006E
Run Code Online (Sandbox Code Playgroud)
有什么办法可以把它转换成这个吗?
S
u
n
Run Code Online (Sandbox Code Playgroud)
目前,我正在使用ioutil.ReadFile("data.txt"),但是当我打印数据时,我得到的是 unicode 代码点而不是字符串文字。我意识到这是 的正确行为ReadFile,这不是我想要的。
我的目标是用它们的文字字符替换代码点。
您可以使用strconv.Unquote()和strconv.UnquoteChar()函数进行转换。
您应该注意的一件事是,strconv.Unquote()只能取消引号中的字符串(例如,以引号字符"或反引号字符开头和结尾`),因此我们必须手动附加它。
看这个例子:
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"`))
Run Code Online (Sandbox Code Playgroud)
输出(在Go Playground上试试):
[\u0053 \u0075 \u006E]
[S u n]
Gopher <nil>
Run Code Online (Sandbox Code Playgroud)