【问题标题】:Prevent decode \u200c character in NewtonSoft Json result防止在 NewtonSoft Json 结果中解码 \u200c 字符
【发布时间】:2025-12-25 06:35:07
【问题描述】:

当我以 XML 格式返回结果时,我在数据库的某些文本中的数据中有不可见的 \u200c 字符,我的 ASP.net API 结果正确显示,但是当使用 Newtonsoft.Json 对其进行序列化时,结果中出现“\u200c”字符串。 Newtonsoft 有什么设置可以修复吗?

json:

  {
            "rowClass": "someData",
            "fieldName": "someData",
            "description": "xxxx \u200cxxxxx",

  }

类:

public class Dto
{
    public string RowClass { get; set; }
    public string FieldName { get; set; }
    public string Description { get; set; }

} 

【问题讨论】:

标签: string asp.net-web-api formatting json.net


【解决方案1】:

您看到的是预期行为。在JSON 中,字符串中的不可打印字符被编码为\u + 四个十六进制数字,其中数字是字符的Unicode (UTF-16) 表示。当您反序列化 JSON 时,编码的十六进制数字将被转换回原始字符。所以,不,没有办法“修复”这个问题,因为序列化器工作正常。

【讨论】:

  • 这里有同样的问题,尝试使用日元压缩和 \u9999 只是杀死它:(