mysql的字符编码:
| character_set_client     | utf8
| character_set_connection | utf8
| character_set_database   | utf8
| character_set_filesystem | binary
| character_set_results    | utf8
| character_set_server     | utf8
| character_set_system     | utf8
| character_sets_dir       | C:\Program Files\MySQL\MySQL Server 5.5\share\charsets\执行 \.e:\mysql.sql   mysql.sql文件字符编码格式为:utf-8,为什么执行以后全部是乱码
这是mysql.sql文件:
create database bbs;
use bbs;
create table article
(
id int primary key auto_increment,
pid int,
rootid int,
title varchar(255),
content text,
pdate datetime,
isleaf int
);
insert into article values (null,0,1,'蚂蚁大战大象','蚂蚁大战大象',now(),1);
insert into article values (null,1,1,'大象被打趴下了','大象被打趴下了',now(),1);
insert into article values (null,2,1,'蚂蚁也不好过','蚂蚁也不好过',now(),0);
insert into article values (null,2,1,'瞎说','瞎说',now(),1);
insert into article values (null,4,1,'没有瞎说','没有瞎说',now(),0);
insert into article values (null,1,1,'怎么可能','怎么可能',now(),1);
insert into article values (null,6,1,'怎么没有可能','怎么没有可能',now(),0);
insert into article values (null,6,1,'可能性很大的','可能性很大的',now(),0);
insert into article values (null,2,1,'大象进医院了','大象进医院了',now(),1);
insert into article values (null,9,1,'护士是蚂蚁','护士是蚂蚁',now(),0);显示全是乱码,在命令行插入单条insert语句更搞笑
如果插入这行:insert into article values (null,2,1,'瞎说','瞎说',now(),1);
mysql> insert into article values (null,2,1,'瞎说','瞎说',now(),1);
Query OK, 1 row affected (0.00 sec)   成功啦!并且显示的是中文!
执行这行:insert into article values (null,1,1,'怎么可能','怎么可能',now(),1);
mysql> insert into article values (null,1,1,'怎么可能','怎么可能',now(),1);
ERROR 1366 (HY000): Incorrect string value: '\xD4\xF5\xC3\xB4\xBF\xC9...' for column 'title' atrow 1  失败啦!
我想说,你特么在逗我吗?崩溃啦,求解决,在线等,
mysql乱码

解决方案 »

  1.   

    因为 title varchar(255)
    中文转UTF8编码然后转16位导致长度过长"瞎说"这条语句能够成功只是因为转换过来字符长度没有超过256
      

  2.   

    set names gbk;然后再insert试试
      

  3.   

    执行sql文件之前,先set names utf8;至于你后边单条insert出错,set names gbk,再执行(windows下)
      

  4.   

    解决了,这个估计是数据库自身的问题吧,在命令行里面select查询出现乱码,但是在myeclipes里面查询却是正常的,并且取出来的数据也是正常的!