客户端发出的 http 请求中的请求参数之一包含日文字符。如果我在 Firefox 中发出此请求并通过在 Eclipse 中调试到达服务器后立即查看参数,则字符看起来很好。如果我使用 IE 8 执行相同的请求,当我在服务器代码中的同一点查看字符时,这些字符会出现乱码(尽管它们在两种浏览器中都很好)。我检查了两个浏览器发出的 POST 请求,它们都传递了相同的字符序列,即:
%2C%E3%81%9D%E3%81%AE%E4%BB%96
因此,我认为这与编码有关。如果我查看请求的 HTTP 标头,我会注意到以下差异。在 IE 中:
Content-Type: application/x-www-form-urlencoded
Accept: */*
在火狐中:
Content-Type application/x-www-form-urlencoded; charset=UTF-8
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
我认为 IE 8 标头没有明确说明 UTF-8 编码,即使它是在 HTML 文档的元标记中指定的。我不确定这是否是问题所在。我将不胜感激,如果您需要更多信息,请告诉我。