go json.Unmarshal报错invalid chara
2021-12-18 本文已影响0人
岑吾
从网站上获取的一个json字符串数据,使用json.Unmarshal序列化失败,报错invalid character 'ï' looking for beginning of value
。查看json字符串没问题,但是查看byte格式的数据时发现前缀有问题。
在json数据中,可见的第一个字符串是[
, 应该是91才对,但这里是239,组全一下后面的187,191。这不正是\xef\xbb\xbf
, .BOM 标识文本是 UTF-8 编码的头字段啊。这应该是编码问题了,最简单的办法就是在接收到的byte组时,直接将前面的这三个字符删了就可以了
body = bytes.TrimPrefix(body, []byte("\xef\xbb\xbf"))