【问题标题】:Display model in UTF-8 encoding以 UTF-8 编码显示模型
【发布时间】:2018-02-06 09:34:33
【问题描述】:

我用:

@Html.Raw(Json.Encode(Model.Events))

以 JSON 格式显示模型。

在服务器端我有模型:

{"Title":"Party","Url":"site.com/events?id=1&view=table"}

但是在客户端之后我得到了 JSON:

{"Title":"Party","Url":"site.com/events?id=1\u0026view=table"}

如何在不转换特殊符号的情况下显示 JSON?

【问题讨论】:

  • 你为什么使用Json.Encode?几乎所有项目都使用 JSON.NET,甚至是 Web API。
  • ASP.NET 和 .NET 通常不需要任何特殊的东西来使用 Unicode - 所有字符串都已经是 Unicode。 ASP.NET 页面的输出默认为 UTF8。 SO 使用 ASP.NET 并且不执行任何特殊操作来显示字符串、代码、URL。导致问题的是已弃用的 Json.Encode 方法

标签: c# .net json asp.net-mvc utf-8


【解决方案1】:

仅供参考,u0026 是与符号 & 字符的 unicode 编码值。

这里有两个解决方案可以正确解析Json

1. 在您的项目中安装Json.Net 包。

这是最简单也是最常用的方法。

//In your view add

@using Newtonsoft.Json;

@Html.Raw(JsonConvert.SerializeObject(Model))

2.使用正则表达式Unescape方法

@{ 
   string str = @Html.Raw(Json.Encode(Model)).ToString();
}

@{ @System.Text.RegularExpressions.Regex.Unescape(str) }

参考资料:

1.

2.

【讨论】:

  • & 的 Unicode 表示为 &。这是一个编码值。
  • @PanagiotisKanavos,谢谢,我们也可以说它是 Unicode Code 值对吗?
猜你喜欢
  • 1970-01-01
  • 2017-06-20
  • 2019-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-01
  • 2011-10-30
相关资源
最近更新 更多