【发布时间】:2021-07-13 22:43:20
【问题描述】:
我正在使用 python。但现在,我需要修复 Go 错误。 我有这样的字符串:
<!-- \\xd0\\xbf\\xd0\\xbb\\xd0\\xb0\\xd1\\x82\\xd0\\xb5\\xd0\\xb6\\xd0\\xb5\\xd0\\xb9-->\\n \\n \\n <guarantees>\\n
如何使它正确和可读?
如果是 Python,我会使用 decode('unicode-escape')。但是我应该在 Go 中使用什么?
更新
我已经编辑了描述。有双反斜杠
更新 1
我按照答案https://stackoverflow.com/a/67172057/11029221的建议,修复了以这种错误方式进行编码的代码部分。 但我发现在 GO 中你可以像这样修复这样的文本:
a := `\\xd0\\xb5\\xd0\\xb6\\xd0\\xb5\\xd0\\xb9-->\\n\\n\\n<guarantees>\\n`
a = strconv.Quote(a)
a = strings.ReplaceAll(a, `\\\\`, `\`)
unquoted, err := strconv.Unquote(a)
if err != nil {
println(err)
}
str := []byte(unquoted)
for len(str) > 0 {
r, size := utf8.DecodeLastRune(str)
out = string(r) + out
str = str[:len(str)-size]
}
fmt.Printf("%s", out)
【问题讨论】:
-
你试过什么?包括您的代码。你遇到了什么问题?
-
这能回答你的问题吗? ASCII encoding for string in GO