序列化UTF-8

时间:2014-12-23 13:54:34

标签: c# .net json json.net

我对.NET有点新......我已经搜索了大约4个小时(也许还不够努力),无论如何我会继续问:

我有以下代码(我正在使用 Newtonsoft JSON.NET )并且它很好地响应我的其他API(在JSON中)。然而问题是,在我的模型中,我传递包含国际化字符的参数,例如以下'Ç':这些字符从模型中出来(或者至少,我认为),但是它们正确传递。然而,当它们被序列化到输出中时,它们会像(例如)那样出现乱码:

'Ç' =>
A|™©

this.serializer.Serialize(context.HttpContext.Response.Output, this.Model);

我做错了什么?

1 个答案:

答案 0 :(得分:0)

在探讨了这个问题之后,我发现以下内容是一个有用的答案,可以解决问题。

Setting the charset of html response content to 1252

更新1/2/2015

public override void ExecuteResult(ControllerContext context)
{
if (context == null) throw new ArgumentNullException("context");
context.HttpContext.Response.ContentType = "application/json";
context.HttpContext.Response.ContentEncoding = System.Text.Encoding.UTF8;
this.serializer.Serialize(context.HttpContext.Response.Output, this.Model);
}

我必须将双方(API和#)的编码设置为UTF8