我的表单位于一个普通的.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。
感谢。
答案 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");
}