JSON无法解析,报错:Unexpected character encountered while parsing value: .Path
一个.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