ASP.NET表单操作无效的编码百分比

时间:2016-10-25 11:45:13

标签: asp.net forms iis encoding utf-8

我有一个Web应用程序,它将用户的搜索词放在查询字符串中,与Google类似。例如。地址可能是www.example.com/mysearchpage.aspx?q=searchTerm

通常这样可以正常工作,但如果搜索词中有一个特殊字符,例如â,则表单上的action属性将被编码为百分比编码,并且该字符将替换为%u00e2

如果我搜索chât,我将在浏览器的地址栏中显示网址www.example.com/mysearchpage.aspx?q=chât,但从服务器返回的表单上的action属性将为{{ 1}}这意味着后续表单提交失败,因为URL格式不正确。

我确保在IIS中,对于请求,响应标头和响应,编码设置为UTF-8。我还检查了Fiddler中从IIS发送的页面,其中包含编码错误的www.example.com/mysearchpage.aspx?q=ch%u00e2t

编码格式似乎采用非标准格式,如本wikipedia article中所述。

有没有办法阻止IIS以这种方式编码表单action

1 个答案:

答案 0 :(得分:0)

解决方案是将targetFramework=4.5.2添加到web.config文件的httpRuntime标记中。

之前未指定,但已在compilation标记中指定,但指定targetFramework=4.5.1仍导致问题。