'0xEF'是 JSON 字符串中无效的逃生字符



我在解析json配置文件时收到了一条奇怪的消息:

"JsonReaderException:"0xEF"是中无效的可转义字符JSON字符串。应正确转义字符串。行号:3|BytePositionInLine:11;

json文件的内容是:

{
"books": {
"Content": [
"運作"
]
}
}

配置文件中没有这样的字符"0xEF",也没有可转义的字符。

C#代码如下:

using Microsoft.Extensions.Configuration;
// ...
config = new ConfigurationBuilder()
.AddJsonFile(Path.Combine(Directory.GetCurrentDirectory(), "config.json"))
.Build();

如有任何帮助,我们将不胜感激。

注意

  1. 正如我在上面记忆的那样;在配置文件"中没有这样的字符"0xEF";,但是消息显示"0xEF’是JSON字符串"中的无效可转义字符;。它是从哪里来的?

  2. 配置文件是正确的文件,上面发布的所有信息都经过双重确认。

  3. 单词的字节表示運作是:byte[]{0xff 0xfe 0x4b 0x90 0x5c 0x4f}。

  4. 这个问题是由";運&";,所有其他词都很好用。json文件中是否有某些单词不允许作为字符串?

初始化编码时的文件似乎是ANSI。将编码json文件更改为UTF-8 BOM。

(">(,即全宽度报价标记(FWQM(不是(">

FWQM(">(是一个用于UTF-8编码EF BC 82的字符。因此CCD_ 2字节的起源。

JSon文件中可能有一个FWQM(">(,而不是QM">

最新更新