我用的是MySQL和JSP,从MySQL数据库中读取数据到JSP页面上,出现了乱码,JSP的编码格式是 page contentType="text/html;charset=gbk"
数据库用的也是编码格式,ENGINE=InnoDB DEFAULT CHARSET=gbk ,为什么还会出现乱码啊?是不是应该在server.xml文件的<Connector……/>中添加点什么啊
 <Connector port="8080" protocol="HTTP/1.1" 
               maxThreads="150" connectionTimeout="20000" 
               redirectPort="8443" URIEncoding="gbk"/>
还是应该在下面的url中添加啊?
<Context path="/jiudian" docBase="jiudian"
         debug="5" reloadable="true" crossContext="true"   workDir="">
   <Resource   name="jdbc/jiudian"
              auth="Container"
     type="javax.sql.DataSource"
              maxActive="100" maxIdle="30" maxWait="10000"
              username="root" password="1234"
     driverClassName="org.gjt.mm.mysql.Driver"
     url="jdbc:mysql://localhost:3306/test/>
</Context>大家帮帮忙,在线等!!!!!

解决方案 »

  1.   

    在server.xml中的那个端口那添加个URIEncoding("GBK");试试
      

  2.   

    你采用的是post方法还是get方法啊???
      

  3.   

    请问在page contentType="text/html;charset=gbk"中的"gbk"是什么编码方式啊?我们老师给我们讲时只用到了charset=gb2312和charset=UTF-8两种编码方式,可以告诉我吗??
      

  4.   

    doPost方法不用在server.xml添加URIEncoding("GBK")
    在你的jsp文件中写入<% request.setCharacterEncoding("GBK");%>
      

  5.   

    首先,确认你数据库里面存储的编码是否正确,可以用数据库自带的方式连接并查询,MySql的话就用命令行吧,如果你这么查出来的就乱码了,说明你的数据进库的时候就弄错了;
    当然了,数据库中即使存错了,查询后在JSP上显示也设置错了,有些情况下会有负负得正的效果,但这显然不够严谨;
    确认数据库中存放的是正确的数据后,用eclipse写个简单的java程序,就连接数据库查询一个表,读取其中带中文的列,显示出来,过程中可以不断修改连接MySql的URL中的编码设置,直到你看到正确的中文;
    MySql是支持URL定制连接字符集的,改改试试总能弄对,如果是DB2什么的乱了,那就只能应用里去转码,或者做成代理驱动透明地加入转码过程,这样应用不需要做任何修改。
      

  6.   

    中文通过服务器的时候有重新编码了
    你要在接受的地方在重新编码一次就可以了比如:String test = "";
    try {
    test = new String(test.getBytes("ISO-8859-1"),"UTF-8");
    } catch (UnsupportedEncodingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
      

  7.   

    GBK: 汉字国标扩展码,基本上采用了原来GB2312-80所有的汉字及码位
    GB2312码是中华人民共和国国家汉字信息交换用编码,全称《信息交换用汉字编码字符集——基本集》
      

  8.   

    这句话一般写在filter,这样就不用每个页面都写又不影响页面