关于使用oschina的RequestContext类遇到的一个URL传中文参数乱码问题

山哥 发布于 2012/11/10 14:32
阅读 579
收藏 0

OSC 的 RequestContext 类非常的好用,尤其是对URL传递中文进行内部处理:RequestProxy

/**
 * 参数转码
 * @param value
 * @return
*/
private String _DecodeParamValue(String value){
  if (StringUtils.isBlank(value) || StringUtils.isBlank(uri_encoding)
	||StringUtils.isNumeric(value))
		return value;		
  try{
	return new String(value.getBytes("8859_1"), uri_encoding);
  }catch(Exception e){}
  
  return value;
}

但是在IE下发现一个诡异的事情:

如果是一个超链接中含有中文参数(<a href="search.jsp?q=开源中国">开源中国</a>),点击链接发送参数,中文没有问题(new String(value.getBytes("iso8859_1"), "UTF-8")输出正确); 

但是如果我直接在IE浏览器的URL地址栏输入:search.jsp?q=开源中国 然后回车跳转,则中文变成了乱码了new String(value.getBytes("iso8859_1"), "UTF-8")输出是乱码,但是发现new String(value.getBytes("iso8859_1")) 输出是正确的了

另外:表单的get方式提交中文参数也是OK的

备注:Tomcat 的 server.xml文件中没有配置 URIEncoding="UTF-8",因为如果配置了URIEncoding="UTF-8" 就和 RequestContext的 _DecodeParamValue() 冲突了。

特意测试了下OSC的IE地址栏直接输入,也是乱码:

对于这个问题有没有什么好的解决方式?

请 @红薯 大哥也看下这个问题,呵呵。

加载中
0
红薯
红薯
ie下地址栏不能直接中文的,这不是程序问题哦
山哥
山哥
回复 @红薯 : 明白了红薯大哥,呵呵。问题关闭
红薯
红薯
@json 是的
山哥
山哥
是不是说:IE浏览器本身不支持直接在地址栏输入中文信息?
返回顶部
顶部