例子;
在servlet里面代码:
// 重定向
String str = "chat/index.jsp?cUser=张三2009;
response.sendRedirect(str);//jsp页面
但在IE地址栏里确只显示了2009,中文消失了。应该怎么解决?

解决方案 »

  1.   

    用JS encodeURIComponent("张三2009");
    如果webapplcation 设置的字符转码,java程序不需要管就是相应的编码了、如果没有设置,new String(cUser.getBytes("iso-8859-1","utf-8"));如果是UTF-8的话!!!
      

  2.   

    lz用得tmcat吗?还可以修改配置文件server.xml,在<port="8081"......URIEncoding="utf-8">
      

  3.   

    我是在servlet里面拿到这个"张三2009",怎么可能可以用js脚本?
      

  4.   

    你说这个方法用过,只是解决从jsp传中文到servlet。
    但我现在的需求是从servlet传中文到jsp,中文连乱码都没显示,直接消失了。
      

  5.   

    在重定向前加response.setCharacterEncoding("UTF-8")
    在你的那个jsp页面也要把 pageEncoding="ISO-8859-1"改为UTF-8
      

  6.   

    不行,如果这样,在jsp页面连中文都消失了。
      

  7.   

    经过多翻调试编码,终于搞定了!!
    原来要用ISO8859-1这个编码
    (真奇怪,我的jsp页面和servlet编码全部都是utf-8,为什么servlet传到jsp要用这个iso8859-1呢,谁能解析一下这是道理)
    // 重定向
    userName  = new String(userName.getBytes("UTF-8"),"ISO8859-1");
    String str = "chat/index.jsp?cUser=" + userName;
    response.sendRedirect(str);