【问题标题】:How to encode a string into Json string text?如何将字符串编码为 Json 字符串文本?
【发布时间】:2016-04-05 11:44:08
【问题描述】:

当我尝试在 C# 中以 JSON 格式检索 SQL 表内容时,例如:在 JSON 序列化之后,内容 Baden-Württemberg 被检索为“Baden-W\u00FCrttemberg”。我试试这个

byte[] bytes = Encoding.UTF8.GetBytes(input);
input = Encoding.UTF8.GetString(bytes);
var output = JsonConvert.SerializeObject(input);

但是我得到了“巴登-符腾堡”,我真的很想像演示http://www.percederberg.net/tools/text_converter.html,输入类型是纯文本,ISO-Latin-1

Baden-Württemberg

输出类型为 JSON/Javascript/Java - 字符串文本

"Baden-W\u00FCrttemberg"

在 C# .Net 中我该怎么做

【问题讨论】:

  • 你应该使用 Encoding.GetEncoding("iso-8859-1") ,让我知道这是否适合你。

标签: c# json encoding json.net jsonserializer


【解决方案1】:

您可以告诉 JSON.NET 转义所有非 ASCII 字符,如下所示:

var json = JsonConvert.SerializeObject("Baden-Württemberg", new JsonSerializerSettings
{
    StringEscapeHandling = StringEscapeHandling.EscapeNonAscii
});

json 的值将是:

"Baden-W\u00fcrttemberg"

您可以通过 ASCII 编码通道发送生成的 JSON 字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-15
    • 1970-01-01
    • 2023-03-07
    • 2013-06-07
    • 1970-01-01
    • 2019-08-19
    • 2012-12-20
    • 2012-04-25
    相关资源
    最近更新 更多