目录

go http 请求解析body err: invalid character ï looking for beginning of value

go http 请求解析body err: invalid character ‘ï’ looking for beginning of value

问题

在使用 go http 发起请求后,对响应 body 进行 json 解析时报错:

invalid character 'ï' looking for beginning of value

解决

原因:

The server is sending you a UTF-8 text 
string with a Byte Order Mark (BOM). 
The BOM identifies that the text is UTF-8 encoded,
but it should be removed before decoding.

大概意思就是说:字符串字节中存在特殊字符(BOM),导致 json 反序列化失败

解决

在 unmarshal 反序列化之前将服务器返回的body处理一下:

 // Or []byte{239, 187, 191}
body = bytes.TrimPrefix(body, []byte("\xef\xbb\xbf"))

参考资料

go json 序列化 反序列化 报错 invalid character i looking for beginning of value - 五岁小孩的博客