假设我有一个这样的文本文件。
\u0053 \u0075 \u006E
有什么办法可以将其转换为此吗?
S u n
当前,我正在使用ioutil.ReadFile("data.txt"),但是当我打印数据时,我得到的是Unicode代码点而不是字符串文字。我意识到这是的正确行为ReadFile,只是不想。
ioutil.ReadFile("data.txt")
ReadFile
我的目标是用文字字符替换代码点。
您可以使用strconv.Unquote()和strconv.UnquoteChar()函数进行转换。
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>