添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
腼腆的炒粉  ·  SocketsHttpHandler 类 ...·  1 月前    · 
讲道义的砖头  ·  如何:通过使用 ...·  2 周前    · 
玩足球的树叶  ·  DateTimePicker 类 ...·  2 周前    · 
买醉的饭盒  ·  Rad DatePicker Max ...·  2 周前    · 
爱健身的眼镜  ·  DbDataAdapter 類別 ...·  2 周前    · 
玩篮球的松树  ·  Verilog case语句 | ...·  1 周前    · 
无邪的大熊猫  ·  HCC-DOCS·  10 月前    · 
幸福的马铃薯  ·  tvOS SDK 疑難解答 - ...·  11 月前    · 

System.Text.Json.JsonSerializer.Serialize(ruleDescription) 中文显示\u809D\u764C\u4E13\u75C5\u961F\u5217\u6570\u636E\u5E93\u4E0E\u591A\u7EC4\u5B66\u751F\u7269\u5168\u606F\u5E93\u7684\u5EFA\u7ACB

在使用 System.Text.Json.JsonSerializer.Serialize 方法将对象转换成 JSON 格式时,会自动进行 Unicode 编码,这是 JSON 格式的规定。如果需要在 JSON 中显示中文字符,可以通过指定 JsonSerializerOptions.Encoder 属性为 JavaScriptEncoder.Create(UnicodeRanges.All) 来实现,如下所示:

var options = new JsonSerializerOptions
    Encoder = JavaScriptEncoder.Create(UnicodeRanges.All)

string jsonStr = JsonSerializer.Serialize(ruleDescription, options);
这样就可以将 JSON 字符串中的 Unicode 编码还原成中文字符进行显示。

全局解决此类问题

你可以在 JsonSerializerOptions 中设置 Encoder 属性为 JavaScriptEncoder.Create(UnicodeRanges.All) 来实现全局的 JSON 序列化设置。

以下是代码示例:

using System.Text.Encodings.Web;
using System.Text.Json;
// 全局配置 Json 序列化
var options = new JsonSerializerOptions
    PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
    Encoder = JavaScriptEncoder.Create(UnicodeRanges.All)
JsonSerializerOptions.Default = options;

上述代码中,我们创建了一个 JsonSerializerOptions 对象,并设置了 Encoder 属性为 JavaScriptEncoder.Create(UnicodeRanges.All),表示在序列化时将所有 Unicode 字符进行转义。

接着,将该 JsonSerializerOptions 对象设置为全局默认值即可,这样就能够全局解决 System.Text.Json.JsonSerializer.Serialize 对中文进行 Unicode 转义的问题。

AJAX传递复杂数据如果自己进行格式定义的话会经历组装、解析的过程,因此AJAX中有一个事实上的数据传输标准JSonJson(是一个标准,就像XML一样,Json规定了对象以什么样的格式保存为一个字符串)将复杂对象序列化为一个字符串,在浏览器端再将字符串反序列化为JavaScript可以读取的对象。看一下Json的格式。Json被几乎所有语言支持。 C#中将.Net对象序列化为Json...
1 原因:.serialize()自动调用了encodeURIComponent方法将数据编码了 2 解决方法:调用decodeURIComponent(XXX,true);将数据解码 3 例如: 4 var params = jQuery("#formId").serialize(); // http request parameters. 5 params =
JsonSerializer.Serialize自动会对非Ascii字符进行转义,变成诸如"\u5468"之类的东西,对网页应用比较友好,当我们不需这个转义的时候,必须设置JsonSerializerOptions如下: var options = new JsonSerializerOptions Encoder = JavaScriptEncoder.Create(UnicodeRanges.CjkUnifiedIdeographs,UnicodeRanges.CjkUnifiedId.
$(".register-btn").click(function() { var form = $("#register-form").serialize(); //序列化中文时之所以乱码是因为.serialize()调用了encodeURLComponent方法将数据编码了 //原因:.serialize()自动调用了encodeURIComponent方法将数据编码了 //解决方法:调用decodeURICompon...
原因【.serialize()】自动调用了encodeURIComponent方法将数据编码了,jquery使用serialize()出现中文乱码的解决办法:调用【decodeURIComponent(XXX,true);】将数据解码。 本教程操作环境:windows7系统、jquery3.2.1版本,该方法适用于所有品牌电脑。 推荐:jquery视频教程 jquery使用serialize()出现中文乱码的解决办法: 原因:.serialize()自动调用了encodeURIComponent方法将数据编