MySQL 1366错误解决办法

MySQL 1366错误大致描述如下

  1. SQL Error: 1366: Incorrect string value: "xE8xAFxA6xE7xBBx86…" for column "address" at row 1

解决办法:检查数据库此字段的字符集与整理字符集是否与SQL语句传递数据的字符集相同;不相同则会引发MySQL1366错误。

修改MySQL该字段的字符集与整理规则即可。假设数据表为phplamp, SQL语句的字符集为utf8,出错的字段为address:

MySQL 1366 错误解决办法
  1. #检查数据表所有字段的状态
  2. ->show full columns from phplamp;
  3. #发现address字段的Collation项非utf8,修改它!
  4. ->alter table phplamp change name name varchar(100) character set utf8 collate utf8_unicode_ci not null default '';

修改完字段的字符集后可以再使用show full columns from table_name命令检查一下,以确保万无一失。假如您的SQL字符集为GBK或是GB2312或是其它的话,只需要将数据表字段的字符集更改为其相应的编码即可。

 

mysql[ERROR 1366 (HY000):错误]中文显示问题

mysql的字符集用utf8也解决不了中文的编码问题,用gbk才能解决。所以总结一下如果更改编码:
停掉mysql服务,修改my.ini文件,修改两处default-character-set=gbk。启动mysql服务。再次插入,还是有问题。

用status看了一下:

mysql> status;

原来

Current database:  order_movie_ticket

Server characterset:    utf8

Db     characterset:    utf8

Client characterset:    gbk

Conn.  characterset:    gbk

虽然Client characterset和Conn. characterset都改成了gbk, Db characterset的字符集还是utf8,所以仍出现中文乱码。

所以要把它设回gbk,用alter命令。

mysql> alter database order_movie_ticket character set gbk;

因为只改了order_movie_ticket这一个db,所以直接用status查结果还是Db characterset的字符集为utf8,但是若转入order_movie_ticket,只看他自己的

mysql> use order_movie_ticket;

再用status看一下,这回对了。再次插入数据,这回正确了。

要注意的是以上改的前提是database order_movie_ticket里是空的,如果它的一些表里已经有数据就不能只改db了,还要用alter命令改相应的table,

如:mysql> alter table movie character set gbk;

可以通过如下命令

mysql> show create table movie; 来看表的create命令形式的结构和表的字符集。

----------------------------------------------------------

movie | create table 'movie' (

'movie_id' bigint(20) not null auto_increment,

'name' varchar(50) not null,

'actor' varchar(100) not null,

'director' varchar(30) not null,

'classification' varchar(30) default null,

'story' varchar(200) default null,

'valid' char(1) not null default 'Y',

primary key ('movie_id')

) ENGINE=InnoDB DEFAULT CHARSET=gbk


作者:Kei
出处:http://www.cnblogs.com/ikei/
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.

 
原文地址:https://www.cnblogs.com/ikei/p/7119970.html