JSON无法解析,报错:Unexpected character encountered while parsing value: .Path

作者: 龙哥 分类: 技术 发布时间: 2021-12-20 14:45 ė4,384 次浏览

一个.json格式的Json文件用记事本打开,修改某个值后保存,然后利用Newtonsoft.Json 转成对象时报错了。报错信息如题:

Unexpected character encountered while parsing value: .Path ”

 

解决思路:之前php也遇到过,类似

有的windows系统用记事本打开保存为UTF-8时模板带有BOM头(Byte Order Mark:字节序标记),文件读取转成byte[] 时,首部位置有固定的编码:EF BB BF。为了防止这类情况发生,需要做一个判断,去除BOM头就可以了。

                    #region 解决编码解析问题   //ParamOut 传入,sResult 传出
                    byte[] buffer = Encoding.UTF8.GetBytes(ParamOut);
                    string sResult = Encoding.UTF8.GetString(buffer, 0, buffer.Length);
                    byte[] bomBuffer = new byte[] { 0xef, 0xbb, 0xbf };
                    if (buffer[0] == bomBuffer[0] && buffer[1] == bomBuffer[1] && buffer[2] == bomBuffer[2])
                    {
                        int copyLength = buffer.Length - 3;
                        byte[] dataNew = new byte[copyLength];
                        System.Buffer.BlockCopy(buffer, 3, dataNew, 0, copyLength);
                        sResult = System.Text.Encoding.UTF8.GetString(dataNew);
                    }
                    #endregion

 

 

本文出自 俞凌龙博客,转载时请注明出处及相应链接。

本文永久链接: https://blog.jlwz.cn/265

Ɣ回顶部