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



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

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

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

我已经确保在IIS编码设置为UTF-8的请求,响应头和响应。我还检查了IIS在Fiddler中传递的页面,其中已经包含了错误编码的action

编码格式似乎是本维基百科文章中解释的非标准格式。

是否有一种方法可以防止IIS以这种方式编码表单的action ?

解决方案是将targetFramework=4.5.2添加到web中的httpRuntime标签中。配置文件。

以前没有指定,但是在compilation标签中指定了,但是指定targetFramework=4.5.1仍然会导致问题。

最新更新