我是新手,自己用个测试页面,页面编码是GBK的  index.jsp?name=中文测试但是name参数我用request.getParameter接收后打印出来的是乱码
在网上搜了一堆资料,也试过转换一下编码Strinng a = request.getParameter("name");
out.println(new String(a.getBytes("ISO-8859-1"), "gbk"));但还是不行,找了一整天的资料,都快逼疯了,求高手指点
页头
contentType="text/html; charset=gbk"
pageEncoding="gbk"都加了,request.setCharacterEncoding("gbk")  也加了,但总是显示乱码

解决方案 »

  1.   

    你页面编码有没有跟后台java的编码有一致;保证一致的情况下转码就不会有问题!
      

  2.   

    我整个项目就一个文件而已的,而且这个文件什么也没做,就单单getParame一下,然后打印而已
      

  3.   


    request.setCharacterEncoding("UTF-8");
    response.setContentType("text/html;charset=UTF-8");还有确保页面编码格式也是UTF-8
      

  4.   

    js 的<metadata ...charset加了吗?
      

  5.   

    把服务器的配置编码也改一致.
    如tomcat下的server.xml
    <Connector port="80" protocol="HTTP/1.1" 
                   connectionTimeout="20000" 
                   redirectPort="8443" 
                   URIEncoding="UTF-8"
     />
      

  6.   

    <%@ page language="java" import="java.util.*" pageEncoding="gbk" contentType="text/html; charset=gbk"%>
    <%
        request.setCharacterEncoding("gbk");
        response.setCharacterEncoding("gbk");
        
        out.println(new String(request.getParameter("name").getBytes("ISO-8859-1"), "gbk"));
    %>
    怕是我现在在测试的页面的代码,调试的时候老是乱码
      

  7.   

    看是不是 get 提交的,
    如果是改成post
      

  8.   


    对请求的url进行encodeURI(encodeURI(url));Strinng a = request.getParameter("name");
    a = URLDecoder.decode(a,"UTF-8");这样就OK了。
      

  9.   

    在Eclipse中右键看Properties中的Resource,看你的项目的默认编码是多少?这个编码级别也是你java文件的编码,页面希望能和你的java文件保持同一个编码,如果项目是UTF-8,而你的页面时GBK必然乱码。
      

  10.   

    你如果是post提交的话request.setCharacterEncoding("gbk");这句话有作用
    但是你如果用get提交的话只能用out.println(new String(a.getBytes("ISO-8859-1"), "gbk"));
    并且还用看一看你的页面使用啥提交过来的编码,这样就不会出现乱码问题