我有一个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
?
答案 0 :(得分:0)
解决方案是将targetFramework=4.5.2
添加到web.config文件的httpRuntime
标记中。
之前未指定,但已在compilation
标记中指定,但指定targetFramework=4.5.1
仍导致问题。