在mysql下建了个表,建表时没太注意编码问题。
默认的应该是latin1,我在latin1下面插入在一些中文数据,在mysql的控制台下没问题
但是用jsp连接取出来是乱码。
方法1:set names utf8,在mysql控制台显示是乱码,前台取出来是乱码,set name latin1,mysql控制台中文,前台乱码
       插入中文数据,提示,数据太长。
方法2:alter table table_name modify columns text character set utf8;
       全部乱码;插入中文数据,提示,数据太长。
方法3:修改my.ini里的default-character-set=utf8,乱码;
       插入中文数据,提示,数据太长。
方法4:在mysql的bin下面MySQLInstanceConfig里置成utf8,乱码,无果。
      插入中文数据,还未试。。
我个人觉得我输入的数据以latin1的编码方法编码,要转码,用方法1转码转出来却是乱码,于是用方法2进行每字段转码,还是乱码,烦燥,用方法3改my.ini,继续乱码,发狂。继续在MySQLInstanceConfig重新设置,还是乱码,遂崩溃矣~~~

解决方案 »

  1.   

    修改my.ini里的default-character-set=utf8,重新启动MYSQL服务
    在新的字符集下建表、插入记录
      

  2.   

    是不是原数据就没办法在mysql下修改了?
      

  3.   

    在你的JSP也用 latin1 应该就可以了。
    这样你数据库中也是latin1, JSP告诉MYSQL用的也是LATIN1,MYSQL就会做自动转换了。http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码
      

  4.   

    回楼上的兄弟,直接在mysql控制台里插的数据。
    还没用连接呢,在mysql里的问题还没解决呢。
      

  5.   

    进入MYSQL
    show variables like 'char%'; 
    贴结果
      

  6.   

    在你的mysql控制台中set names 'latin1'中文是否正常?提供你的 
    show create table xxx ;
    show variables like 'char%'; 信息以供别人分析。
      

  7.   

    show variables like'char%';
    | Variable_name            | Value
         |
    +--------------------------+----------------------------------------------------
    -----+
    | character_set_client     | utf8
         |
    | character_set_connection | utf8
         |
    | character_set_database   | utf8
         |
    | character_set_results    | utf8
         |
    | character_set_server     | utf8
         |
    | character_set_system     | utf8
         |
    | character_sets_dir       | C:\Program Files\MySQL\MySQL Server 5.0\share\chars
    ets\ |
    +--------------------------+----------------------------------------------------
    -----+
    7 rows in set (0.00 sec)
      

  8.   

    执行一下 set names 'latin1';
      

  9.   

    你已经设置成UTF8,估计你的记录是在原来的字符集下插入,
    你可以导出表数据,在新的字符集下重新导入记录 试试
      

  10.   

    show create table xx;
    ----------------------------------------------------+
    | blogs | CREATE TABLE `blogs` (
      `blogid` int(10) NOT NULL auto_increment,
      `title` text,
      `pubtime` int(11) default NULL,
      `authorid` int(8) default NULL,
      `replies` int(8) default NULL,
      `views` int(8) default NULL,
      `preporty` int(1) default NULL,
      `category` int(3) default NULL,
      `sticky` int(1) default NULL,
      `content` mediumtext NOT NULL,
      `weather` tinytext NOT NULL,
      PRIMARY KEY  (`blogid`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
    show variables like'coll%';mysql> show variables like'coll%';
    +----------------------+-----------------+
    | Variable_name        | Value           |
    +----------------------+-----------------+
    | collation_connection | utf8_general_ci |
    | collation_database   | utf8_general_ci |
    | collation_server     | utf8_general_ci |
    +----------------------+-----------------+
    3 rows in set (0.00 sec)
      

  11.   

    set names latin1;
    select * from table;----+---------+
    | blogid | title                              | pubtime  | authorid | replies |
    views | preporty | category | sticky | content
        | weather |
    +--------+------------------------------------+----------+----------+---------+-
    ------+----------+----------+--------+------------------------------------------
    ----+---------+
    |      2 | 今天的天气很不错也,咿呀咿呀哟喂!                             | 2009
    1125 |        1 |       2 |    20 |        1 |        1 |      1 | 我今天上班的
    时候真是超无聊啊,改了半天的东西                                      | 雨
      |
    |      3 | this is a text test!               | 20091126 |        3 |       6 |
        5 |        4 |        8 |      6 | dlskaf;lks;lak;ldska;ldf
        | fdsfds  |
    |      4 | 测试                                   | 20081126 |        2 |
    4 |     9 |        8 |        4 |      9 | 也不知道行不行呢
                         | 晴        |
    |      5 | 一个小小的测试                               | 20091129 |        3 |
          5 |     4 |        8 |        6 |      9 | 这次是修改了default后的测试哦。
    !                                   | 晴        |
    +--------+------------------------------------+----------+----------+---------+-
    ------+----------+----------+--------+------------------------------------------
    ----+---------+
    4 rows in set (0.00 sec)
      

  12.   

    至少你的数据是安全的。 
     下一步是确认你表中存放的到底是什么字符集.select left(title,4), hex(title) from xxx
    看一下内容。或者不想仔细研究的话,你可以直接
    select * from xx INTO OUTFILE 'xxx.txt'
    然后再
    set names 'gb2312'; 或者 set names 'gbk'; 
    再把xxx.txt中的内容 再插入进去
      

  13.   

    刚才吃了两口饭。回来了。
    数据非法,用图片吧。我汗啊。。
    在latin1里面是这样存的啊。。
      

  14.   

    汗,导出后.mysql里也全是乱码,先set names 还是不行哦。
      

  15.   

    mysqldump -u root -p databasename>f:xx.sql