c# - AJAX 中的 JSON、MVC3 和 UTF-8 字符编码

标签 c# asp.net-mvc character-encoding

我将 JSON.stringify 数据发布到 MVC 操作,尽管在我的 javascript 中设置了编码,但所有 UTF 字符都被损坏了。这是我的 jQuery 调用的样子:

$.ajax({
    type: "POST",
    url: BaseAppPath + "/Controller/Action",
    dataType: "json",
    contentType: "application/json; charset=utf-8",
    data: JSON.stringify(jsonData),
    success: function (data) {
        // success code
    },
    error: function (xhr, textStatus, errorThrown) {
        // error code
    }
});

我的 Action 定义看起来像这样:

public JsonResult ModifyTaskStatus(int taskId, string note)

我在操作的第一行有一个断点。那时,“note”参数中的字符被删除。断点之前的所有内容都会正确处理字符。我需要做什么才能确保我的操作正确获取汉字?

最佳答案

首先想到的是您的 Web 应用程序可能没有设置相同的编码。你的 web.config 中有元素吗?如果没有尝试添加到

<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>

当然还要确保您的页面具有在标签中设置的内容类型

<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />

关于c# - AJAX 中的 JSON、MVC3 和 UTF-8 字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10953745/

相关文章:

c# - 使用 Owin Startup 类中的 OnMessage 订阅 Azure 服务总线

asp.net-mvc - ASP.NET MVC 项目的身份验证/授权

asp.net-mvc - 在routes mvc中添加和调用公司名称

php - 阿拉伯字符编码问题: UTF-8 versus Windows-1256

objective-c - 在 Objective-C/Cocoa/SQL 中使用希腊字母

c# - 从代码访问 View 模型所需的错误消息数据注释属性 - MVC、Razor

c# - 不懂ninject和injecting

c# - 将关闭按钮(红色 x)添加到 .NET 工具提示

c# - ASP.NET MVC 2 + jQuery 灯箱 + 登录

html - 如果在内容类型 header 中发送字符集,仍然建议通过元标记在 head 标记中发送吗?