做了个测试页面t.jsp,代码如下
<%@ page language="java" contentType="text/html; charset=utf-8"%>
<%
request.setCharacterEncoding("utf-8"); 
String name=request.getParameter("name");
out.println(name);
%>
使用如下URL访问http://localhost:7001/t.jsp?name=%u53F7
得到的输出为“%u53F7”同样的情况在resin下,就可正常解析为中文,得到输出为"号"不知道在weblogic下,改做如何的设置才能得到正确的中文,最好不使用javascript的unescape方法来解析
谢谢各位了

解决方案 »

  1.   

    String name= new String(request.getParameter("name").getBytes(
    "ISO-8859-1"), "UTF-8")这样不知道行不行
      

  2.   

    我觉得无论在request还是response的时候都要加上utf-8,就应该没有问题,是不是你的服务器不支持utf-8啊
      

  3.   

    response.setContentType("text/xml;charset=utf-8");试试
      

  4.   

    %u53F7 我觉得应该用encodeURIComponent(你的参数);
      

  5.   

    写错了...
    URLDecoder.decode("%u53F7", "GBK"); 
      

  6.   


    得到结果是“%25u53f7”,这里的应用环境不太适合使用JS处理,unescape是可以处理正确的
      

  7.   


    你误解我的意思了,
    encodeURIComponent的应该是中文,而不是转码以后的字符。比如:
    encodeURIComponent("中文字符");
    就可以了。
      

  8.   

    你误会了啦。
    楼主的意思是,他只能对这个URL操作,而产生这个URL的代码只能当作黑盒来研究。也就是没法用encodeURIComponent啦。
      

  9.   

    get方式用request.setCharacterEncoding()方法是没用的,不信你试试看
      

  10.   

    如sachxp所说,的确不能对URL进行处理
    只能考虑对获得的URL进行处理那么有其他的办法吗
      

  11.   

    说白了就是如何把一个 unicode 转换为一个汉字。而且这个 unicode 得到的时候开头是 % 而不是\“号”正确的 unicode 代码是 \u53F7\u 只是一个转义,类似 \r、\n、\t 这样的
      

  12.   

    unicode转汉字,把\u53f7的\u去掉,然后用Integer parse成一个整数,强制转成char,应该可以了。
      

  13.   

    最后的解决方法,就是修改原先的URL的编码方式
    原先是用escape进行编码的
    改为encodeURIComponent就可以了这样修改影响比较大,但是看来实在也没有其他什么法子了,只能这么改
    谢谢楼上的各位