ASP MVC Post Encoding Shift-Jis

时间:2015-06-11 18:26:29

标签: asp.net-mvc encoding shift-jis

我的表单位于一个普通的.html文件中,其中包含以下元标记:

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

我发布表单的服务要求数据采用shift-jis编码。当我通过Chrome打开此.html文件发布此表单,然后单击提交按钮,该服务接受它。当我检查Fiddler中的帖子值时,日语字符出现在服务的帖子中,如下所示:

goods_name_1 =“ i P”

现在,当我使用完全相同的表单并将其放在ASP MVC视图中时,将视图提供给Chrome,其源代码与.html文件中的源代码相同,查看源代码与.html完全相同版开了。但问题是当我使用提交按钮发布表单时,帖子值看起来像这样:

goods_name_1 =“商品1”

然后该服务回复编码问题。

有人可以建议可能出现的问题吗? ASP MVC提供的视图具有响应头“Content-Type:text / html; charset = utf-8”。我不知道为什么post值与.HTML文件版本不一样。有什么想法吗?

添加,我的.html文件在Windows中保存为Unicode。

感谢。

1 个答案:

答案 0 :(得分:1)

在Controller中设置响应的ContentEncoding:

public ActionResult MyAction() {
    Response.ContentEncoding = System.Text.Encoding.GetEncoding("shift_jis");
    return View();
}

或在视图中:

@{
    ViewBag.Title = "Home Page";
    Response.ContentEncoding = System.Text.Encoding.GetEncoding("shift_jis");
}