首先:你的在提交以前,确定字符不是乱码?
再者:你是用什么来查看mysql里数据的?

解决方案 »

  1.   

    我没有提交数据,我直接在写条测试的数据。
    mysql的GUI工具很多,我用的是SQL yog
      

  2.   

    <%@ page contentType="text/html;charset=gb2312"%>这句一定要,然后就是写数据到数据库中可以不管,但是从数据库中读取数据出来,如果有中文在里面,一定要做从ISO-8859-1这种编码到GBK或是GB2312这种编码的转换。先把数据库中那个表里的数据全删掉,然后按照上面的步骤做,这样应该就不会出现问题的。
    另外不要以为你这个问题很难,象这样的贴子以前有很多,你没有必要再发一个相同的贴子。问别人口气小点,搞得别人不回答你就是卖国贼似的,放谦虚点。
      

  3.   

    connectionUrl=jdbc:mysql://localhost/myTable?autoReconnect=true&useUnicode=true&characterEncoding=gbk
    <%@ page contentType="text/html;charset=gbk"%>在加一个字符集过滤器(servlet-example下有例子),将request中的字符集设置成gbk。只要JSP显示的不是乱码,就可以了。GUI显示乱码,有可能是不支持GBK,MySQLCC支持GBK但是不支持UTF-8。
      

  4.   

    html的编码最好也要设一下<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
      

  5.   

    jsp网页加一句request.setCharacterEncoding("GB2312");
      

  6.   

    野人说的方法如下:try 
    {
        str= new String(str.getBytes("ISO8859_1"),"GB2312");

    catch (UnsupportedEncodingException e)
    {
        e.printStackTrace();
    }
      

  7.   

    to drogun:
      我知道这样的问题很多(我前几天才才提过,前几天的以前我也帮别人解决多类似的问题),但是现在却~~~~~,具体的情况我问题里说了,按照你说的方法“<%@ page contentType="text/html;charset=gb2312"%>这句一定要”,可是只要加上这一句charset=gb2312,不管我的URL写成什么格式(jdbc:mysql://localhost:3306/myTable或者jdbc:mysql://localhost:3306/myTable?useUnicode=true&characterEncoding=GBK),写进去的数据都是乱码。
      

  8.   

    还没有解决这个问题啊!那就检查一下mysql字符集吧!我一般是用latin1来做默认字符集,不知道你的是用什么。查看的时候可以用网页来试一下。在什么字符集下显示正确。
      

  9.   

    to drogun:
       好啊,在上面半天都没有回答,可以把你的联系方式告诉我吗?如QQ,MSN。具体的给我指点指点,我不胜感激(丢人啊,这个问题好几天了还没有解决,太菜了)
      

  10.   

    mysql字符集不关使用gbk还是latin1都是乱的,具体的我在问题里说了
      

  11.   

    楼主你不要管在数据库中是不是乱码,只要在输入的时候作一次编码转换就可以了,数据库中记录的是ISO-8859-1格式的记录,你直接查看的时候当然是乱码了
      

  12.   

    啊~~~~啊~~~~啊~~~~啊~~~~啊~~~~啊~~~~啊~~~~啊~~~~啊~~~~啊~~~~啊~~~~啊~~~~啊~~~~啊~~~~啊~~~~啊~~~~啊~~~~啊~~~~啊~~~~啊~~~~啊~~~~啊~~~~啊~~~~啊~~~~啊~~~~啊~~~~啊~~~~啊~~~~啊~~~~啊~~~~啊~~~~啊~~~~啊~~~~啊~~~~非常感谢大家的帮忙,我的问题解决了,是mysql版本的问题(我原来的是4.1.7,换成4.0就全都对了),他M的,做梦也想不到,我弄了一个周了(一直找不到)想到这几天过的日子就鬼火——领导冷眼,自己也弄的一塌糊涂,一点自信都没有
      

  13.   

    执行
    mysql>show variables like "%char%";mysql>show variables like "%colla%";能看到你的mysql字符集设置,如果有不是gbk,可以用下面的命令改变它:
    mysql>SET character_set_client = gbk
    mysql>SET character_set_connection = gbk
    mysql>SET character_set_database = gbk
    mysql>SET character_set_results = gbk
    mysql>SET character_set_server = gbkmysql>SET collation_connection = gbk_bin
    mysql>SET collation_database = gbk_bin
    mysql>SET collation_server = gbk_bin另外,对你原来有中文的表执行下面语句:
    ALTER TABLE 表名 CONVERT TO CHARACTER SET gbk;
      

  14.   

    你要看你的数据库在什么平台下,在win下,写入时要转成8859-1.如果在linux下,除了写如要转,读出要再转回来,也就是要再转成gb2312
      

  15.   


    <%@ page language="java" contentType="text/html;charset=GB2312"%>
    <%response.setContentType("GB2312");%>
    注意
    <%response.setContentType("GB2312");%>
    这句话 加上  所有的全部用  GB2312 编码   
    保证没有问题
      

  16.   

    在你的连接数据库的URL中不要指定编码,写成jdbc:mysql://localhost:3306/databasename这样就可以了.你说的乱码是在JSP页面显示的时候是乱码,还是你用那个GUI工具显示是乱码?如果是显示的时候是乱码,你从数据库读取字符串显示的时候一定要做一次编码转换的。也就是用 guoxiaoshou2000(狼骑兵)  写的那个方法把字符串转换一下就可以了。如果是GUI中显示为乱码,那就是那个GUI的问题了,可能你没有指定GUI的字符集,它默认的也不是中文的话,就会显示是乱码。我用Mysql的那个MySQL Contral Center,即便是中文,既使数据库采用ISO-8859-1的编码方式也可以正常显示中文的。