Browser 你派谁来?HTTP GET中的字符而不是Unicode字符

Browser 你派谁来?HTTP GET中的字符而不是Unicode字符,browser,unicode,internet-explorer-9,Browser,Unicode,Internet Explorer 9,我已经在我的一个项目中为搜索操作创建了一个web表单,HTML非常简单: <form action='/search' method="post"> <input type="text" id='search-term' name='search-term' /> <input type="submit" id='start-search' alt='' value="" /> </form> 在服务器中,这将是: http://

我已经在我的一个项目中为搜索操作创建了一个web表单,HTML非常简单:

<form action='/search' method="post">
    <input type="text" id='search-term' name='search-term' />
    <input type="submit" id='start-search' alt='' value="" />
</form>
在服务器中,这将是:

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检索搜索词查询字符串的解码值,该值返回给我。直到这里一切都很好,我没有问题

然而,如果有人直接在IE9中键入上述地址,然后按Enter键,那么我在服务器上得到的是:

http://www.example.com/search?search-term=????
这里怎么了

更新:我们通过Fiddler检查了流量,您可以在以下图片中看到结果:

HTTP Get头,由Fiddler捕获,由Firefox请求

HTTP Get头,由Fiddler捕获,通过IE请求
IE不知道手动键入URL时要使用什么字符集,因此它必须使用默认字符集?将Unicode字符转换为不支持这些Unicode字符的Ansi字符集时会出现字符。当提交webform时,IE使用webform的字符集,该字符集可以由标记本身、HTML文档中的标记或HTTP内容类型标题指定,因此IE猜测要使用的正确字符集的可能性较小。

在HTML中混合使用单引号和双引号。。。为什么这么草率?不@MattBall,这是我在这里写的。但你是对的。单一方法效果更好。一致性万岁!谁说是IE9?您是否使用Fiddler或其他工具捕获IE发送的内容,可能您的服务器不理解请求。我使用Firebug查看IE发送的内容,在Firebug中,一切正常。但在服务器中,在最开始的位置或上下文中,请求字符就像???。好的,你的问题应该是HTTP服务器和Unicode字符
http://www.example.com/search?search-term=????