有个json数据格式如下
{
"name": "\\xB0\\xA2\\xCB\\xD5"
}
定义结构体用json.Unmarshal处理
testStr := string(testBytes)
enc := mahonia.NewDecoder("gbk")
res := enc.ConvertString(testStr)
使用mahonia包处理,发现输出\xB0\xA2\xCB\xD5,
如果定义一个[]byte{0xb0,0xA2,0xCB,0xD5}
使用
testStr := string(testBytes)
enc := mahonia.NewDecoder("gbk")
res := enc.ConvertString(testStr)
就能正常输出中文,求解。。如何解析这种字符串
你的处理过程反了,先把数据做decode,然后再做json.Unmarshal,因为go能处理的编码是utf8,而你的十六进制的数据是GBK编码的,直接处理的时候这些数据会转成UTF8的边界值\ufffd,数据已经变化了,你在去做decoder肯定就不对了。
#1