研究了一下午 发现读取utf-8文件时 BOM报头, BOM报头又叫UTF-8签名,其实UTF-8 的BOM对UFT-8没有作用,是为了支援UTF-16,UTF-32才加上的BOM,BOM签名的意思就是告诉编辑器当前文件采用何种编码,方便编辑器 识别,但是BOM虽然在编辑器中不显示,但是会产生输出,就像多了一个空行,一般的php代码如果用记事本等软件编辑保存过之后,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM)。它是一串隐藏的字符,用于让记事本等编辑器识别这个文件是否以UTF-8编码。(还不清楚为什么会在返回数据时候也自动加上了BOM报头)。
然后需要去掉BOM报头,然后解析就正常了
public static String formatString(String s) {
if (s != null) {
s = s.replaceAll("\ufeff", “”);
}
return s;
}
不管有没有把这个方法加到解析json方法的前面去,这样可以让程序更健壮。
读取文件,解析json报错,解析Unquotted string ''
最新推荐文章于 2021-07-08 17:24:43 发布