web api response json with“tilde”

时间:2017-06-02 05:22:32

标签: c# asp.net-web-api asp.net-web-api2

拜托,我需要你的帮助。我在oracle数据库中有数据(我没有访问更新此表,我只有读访问权限。)

表州 字段描述(“字段值具有波浪号”)

SOLICITAR COTIZACI Ó N

我在Web Api 2中有一项服务。

    [HttpPost]
    [Route("paginado")]
    public IHttpActionResult GetList([FromBody]RequestSolicitud solicitud)
    {
        int codeResult = 0;
        string messageResult = string.Empty;
        // logic from get list from DB;
        return Ok(new CompanyResult() { Message = messageResult, OperationCode = codeResult, Data = listFromDatabaseWithTilde});
    }

我在本地pc(西班牙语配置)中运行服务响应 Json结果:

"DescripcionEstado": "SOLICITAR COTIZACIÓN",

但是,我在测试服务器上发布了(英文配置)。 Json结果:

"DescripcionEstado": "SOLICITAR COTIZACI¿N",

我在global.asax中使用了UTF8,但它失败了

3:编码oldDefault = GlobalConfiguration.Configuration.Formatters.JsonFormatter.SupportedEncodings [0];    4:GlobalConfiguration.Configuration.Formatters.JsonFormatter.SupportedEncodings.Add(oldDefault);    5:GlobalConfiguration.Configuration.Formatters.JsonFormatter.SupportedEncodings.RemoveAt(0);

参考。 https://blogs.msdn.microsoft.com/henrikn/2012/04/22/asp-net-web-api-content-negotiation-and-accept-charset/

WebApiConfig.cs

    public static void DisabledBehaviors(HttpConfiguration current)
    {
        var formatter = current.Formatters.OfType<JsonMediaTypeFormatter>().First();

        formatter.SerializerSettings = new JsonSerializerSettings
        {
            NullValueHandling = NullValueHandling.Ignore,
            Formatting = Formatting.Indented,
            DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate
        };
        formatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
        current.Formatters.Remove(current.Formatters.XmlFormatter);
    }

0 个答案:

没有答案