1

我有一个包含以下文本的字符串。

\xD0\xA4\xD0\xB5\xD0\xB4\xD0\xBE\xD1\x80\xD0\xBE\xD0\xB2

它不是字面意思。在字符串中,它像这样存储为单独的字符['\','x','D','0','\','x','A','4',...]

如何将此字符串转换为普通字符?

4

1 回答 1

1

Go 接受十六进制符文文字

因此,您可以将输入用作常规字符串:

fmt.Println("\xD0\xA4\xD0\xB5\xD0\xB4\xD0\xBE\xD1\x80\xD0\xBE\xD0\xB2")
Федоров

游乐场示例。

如果从实际的 string 开始,则["\" "x" "D" "0" ...]需要将单独的 4 字节序列转换为字符。一种肮脏的方式是:

s := `\xD0\xA4\xD0\xB5\xD0\xB4\xD0\xBE\xD1\x80\xD0\xBE\xD0\xB2`
s2, _ := hex.DecodeString(strings.Replace(s, "\\x", "", -1))
fmt.Printf("%s", s2)

游乐场示例。

编辑回答编辑的问题。

于 2017-12-29T09:42:41.957 回答