json解析时碰到一个问题

tytian · · 1578 次点击
`Name: "AB2SSDF",` 这里假定"AB2SSDF"是base58编码后的内容,base64这类编码的目的就是把不可打印的二进制数据转换为可打印的常用字符,也就是将二进制数据转换成文本,方便类似json这样的文本格式传输二进制数据 `name := base58.Decode(group.Name)`你这里decode出来的是要用的有意义的二进制数据 `group.Name = string(name)` ,将二进制数据强转为不可打印的字符串然后marshal肯定会失败,也没必要这么做,要做就先将二进制数组base64或base58转换为常用字符表示的字符串,再设置到name
#3
更多评论
你原来的字符串本身就不是base58编码的,你硬要base58解码,你说会不会乱码? group.Name = base58.Encode([]byte("xxxxxxxx")) 这样测试一下就对了
#1
嗯,不是编码过后的,这里我硬解码只是为了复现问题
#2