json解析 头部字符串带了一个问号

原创
2021/11/16 11:19
阅读数 37

--------解决办法:文件从utf-8 bom转为utf-8即可

 

--------问题原因:
返回的json字符串里含有bom头。

bom头是什么!
BOM: Byte Order Mark
就是一个字节顺序标签,类似一个标记,又叫签名,

BOM签名的意思就是告诉编辑器当前文件采用何种编码,方便编辑器识别,但是BOM虽然在编辑器中不显示,但是会产生输出,就像多了一个空行。
一般的编码集中并不会出现bom头,unicode编码集中会出现。
常见的bom头是:【摘录自:http://www.cnblogs.com/chengmo/archive/2010/10/30/1864004.html】

UTF-8 ║ EF BB BF
UTF-16LE ║ FF FE (小尾)
UTF-16BE ║ FE FF (大尾)
UTF-32LE ║ FF FE 00 00
UTF-32BE ║ 00 00 FE FF


为什么bom头会产生乱码?

有bom头的存储或者字节流,它一定是unicode字符集编码。到底属于那一种(utf-8还是utf-16或是utf-32),通过头可以判断出来。

由于已经说过utf-16,utf-32不指定bom头,解析程序默认就认为是ansi编码,出现乱码。而utf-8指定或者不指定程序都可判断知道对于的字符集编码。

问题就出在这里,可能有的应用程序,它就认为如果utf-8编码,就不需要指定bom头,它可以自己判断,相反指定了bom头,它还会出现问题

(因为它把头当utf-8解析了)。如上面问题场景里的数据。
————————————————
版权声明:本文为CSDN博主「H-Sei」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/armybase11/article/details/51130212

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部