【问题标题】:ASP.NET MVC Override POST parse of fieldsASP.NET MVC 覆盖 POST 解析字段
【发布时间】:2012-07-23 10:37:12
【问题描述】:

我编写了一个 MVC 操作来接收来自服务的帖子。我的问题是该服务正在发布编码错误的多部分数据。

我举个例子:

  • 该服务将为表单字段“文本”发布“á”。
  • 我看到(使用 Wireshark),写入数据包的字节是 225,这是 ISO-8859-1 中“á”的正确字节。
  • 我做了Request.Form["text"],实际上得到了一个奇怪的(不同的)字符。

我相信这是由于 .NET 在使用 utf-8 编码转换为字符串时尝试将值 225 转换为 unicode char,但不能,因为 225 对 utf-8 无效。

所以我的问题是:有没有办法将这些字节解析为字符串?

【问题讨论】:

标签: c# asp.net-mvc multipartform-data


【解决方案1】:

您可以尝试添加一个 HttpModule 并尝试覆盖 Request 对象的 ContentEncoding 属性。虽然我不确定这是否可行。

可以在 Web.Config 的 GlobalizationSection 中设置默认编码。该设置称为 RequestEncoding,仅当您的服务的 HTTP 请求不包含 ContentType 标头时才会生效。见http://msdn.microsoft.com/en-us/library/system.web.configuration.globalizationsection.requestencoding.aspx

您可以进一步在 Web.config 中使用,将上述设置仅设置为特定目录/MVC 控制器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-14
    • 1970-01-01
    • 2011-02-11
    • 2011-10-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-26
    • 2013-10-15
    相关资源
    最近更新 更多