本帖最后由 winkey4986 于 2011-08-14 10:32:06 编辑

解决方案 »

  1.   

    URL 规范并不允许在 URL 中传递非 ASCII 参数,因此就有种称为 URL 编码的东西
      

  2.   

    表单传入的是正常的,url传入的才会乱码,正常传入的如果也转码,反而会乱码
      

  3.   

    不会 Struts 2,我只能告诉你 JSTL 是怎么做的!<c:url value="test.do" var="testUrl">
      <c:param name="name" value="中文" />
    </c:url>
    <a href="${testUrl}">test</a>需要在 Tomcat server.xml 中两个 Connector 加上 URIEncoding="UTF-8",Servlet Filter 加上:request.setCharacterEncoding("UTF-8");
    response.setCharacterEncoding("UTF-8");
      

  4.   

    虽然看不懂jstl,还是谢谢你,另外,想说一句,你的徽章好多!
      

  5.   

    你看一下web.xml中的编码是不是和你页面设置的编码保持一致,这个很重要的。
      

  6.   

    过滤器我也加了,都是utf-8,还是不行!
      

  7.   

    过滤器+注意数据库的编码(比如这样写:jdbc.url=jdbc:mysql://localhost:3306/onlineexamsystem?characterEncoding=gbk)
      

  8.   

    服务器改了编码没有
    tomcat server.xml加上
    URIEncoding='utf-8'
    websphere
    “服务器”-->应用程序服务器,找到自己应用使用的服务器。 
    WS6有不同,注意。 
    找到“服务器基础结构”,展开其下的“Java 和进程管理”,然后进入“进程定义”。 
    进入后找到“其它属性”-->“Java 虚拟机”: 
    将“Java 虚拟机”设置为:-Dfile.encoding=GBK 
      

  9.   

        a.jsp?keywords=" + java.net.URLEncoder.encode(keywords)
      然后在接收参数页面使用如下语句接收
      keywords=new String(request.getParameter("keywords").getBytes("8859_1"));
      乱码的核心问题还是字符集编码问题,只要掌握了这一点,一般的乱码问题都可以解决。
      

  10.   

    楼主用的是struts2吧,乱码问题在struts.xml中加个常量配置不就成了,最好不要在程序中转码,因为转码一多,程序就乱了.
    常量配置如下:
    <constant name="struts.i18n.encoding" value="utf-8"></constant>我写过的程序基本上没怎么出现乱码,就是因为编码统一,eclipse上文件编码全用utf-8.
    tomcat配置server.xml:URIEncoding=utf-8//可以在URL中传输中文
    使用servlet时,先加request.setCharacter...("utf-8");response.setContext...("text/html;charset=utf-8");
    总之,只要你各项编码统一,要么全用GBK,要么全用utf-8(推荐),根本不用在程序中转换
      

  11.   

    web项目,需要注意可能会出现乱码的情况:
    1.页面编码和服务器编码不一致,可以分别在tomcat下面的service.xml设置URIEncoding="UTF-8",
      页面<%@ page pageEncoding="UTF-8"%>
    2.此外还有你的程序编码,也设置成相同的编码struts2的编码可以采用默认以上方法还不行,来找我