以非UTF-8编码接收POST数据(ASP.NET MVC)

Leo*_*rev 8 asp.net-mvc character-encoding

我的ASP.NET MVC应用程序是UTF-8,但是我从第三方应用程序中接收了来自我控制的Encoding.Default中的POST请求.

为一个控制器的一个动作更改请求编码的最安全,最简单的方法是什么?(我的其他申请应保持UTF-8).

public class Message
{
 public int id { get; set; }
 public string phone { get; set; }
 public string mes { get; set; }
 public string to { get; set; }
}

[HttpPost]
public ActionResult Receive(Message msg)
{
        AddIncomingMessage(msg);
        return new EmptyResult();
}
Run Code Online (Sandbox Code Playgroud)

ish*_*kci 2

您可以使用 web.config 位置标记设置在 ASP.NET MVC 中执行基于操作的请求编码。

示例 web.config:

<configuration>
...
<location path="path/to/your/actionmethod">
    <system.web>
        <globalization requestEncoding="ISO-8859-1" responseEncoding="ISO-8859-1" />
    </system.web>
</location>
...
</configuration>
Run Code Online (Sandbox Code Playgroud)

http://www.siimviikman.com/2012/06/12/action-based-request-encoding-in-asp-net-mvc/