我已经创建了搜索操作Web表单在我的项目之一,而HTML是非常简单的:IE发送?字符而不是Unicode字符在HTTP GET
<form action='/search' method="post">
<input type="text" id='search-term' name='search-term' />
<input type="submit" id='start-search' alt='' value="" />
</form>
所以,当用户输入Unicode的搜索词,命中输入,一个HTTP GET请求将与此URL发送到服务器:
http://www.example.com/search?search-term=مثال
此,在服务器将是:
http://www.example.com/search?search-term=%D9%85%D8%AB%D8%A7%D9%84
并且我能够使用HttpContext.Current.Server.UrlDecode("%D9%85%D8%AB%D8%A7%D9%84")
检索search-term
查询字符串的解码值,该字符串返回给我مثال
。直到这里一切正常,我没有问题。
但是,如果有人直接键入在IE9上述地址,并按下回车键,然后我得到的服务器是:
http://www.example.com/search?search-term=????
有什么不对吗?
更新:我们通过提琴手检查流量,你可以看到结果在下面的图片:
HTTP GET头,由小提琴手,与Firefox要求捕获
HTTP GET头,通过捕获提示与IE
在HTML中混合单引号和双引号...为什么这么草率? –
不@ @ MattBall,这是我在这里写的。但你是对的。单一方法效果更好。 Viva一致性! –
谁说这是IE9?你有没有使用Fiddler或什么来捕捉IE发送的内容,也许你的服务器不理解请求。 –