mesql输入中文报错

2023-05-07,,

错误提示:
ERROR 1366 (HY000): Incorrect string value: ‘\xE6\x9D\x8E\xE5\x8B\x87’ for column ‘Sname’ at row 1

前提:
创建的表如下:

创建学生表Student
CREATE TABLE Student
(Sno CHAR(10) PRIMARY KEY,
Sname CHAR(20) UNIQUE,
Ssex CHAR(2),
Sage SMALLINT,
Sdept CHAR(20));

1
2
3
4
5
6
7
8
**插入中文时错误提示:
中文:**错误1366(hy000):第1行“sname”列的字符串值不正确:\xe6\x9d\x8e\xe5\x8b\x87

解释:
已建立的表无法插入中文字符串,原因是因为数据表中的内容为latin1字符集,由下图的的资料可知,latin1字符集为8bit,这说明它是不能表示中文的,故而当然会报改错:
解决办法:
1、 首先通过语句查看: show create table Student;
2、 发现如下所示:

3、 然后通过语句修改数据表编码:alter table Student default character set utf8;
4、 但是修改后仍然出现错误。
5、 我们再次查看编码:show create table Student ;
6、 发现如下所示:

7、 注意 Student 的编码仍然为 latin1 ,虽然此时表的编码已经是 utf8 , 但是不知道为什么 列的编码没有更改过来
8、 下面就是更改列的编码即可
alter table Student change Sname Sname varchar(20) character set utf8;

小结:
查看数据表的编码:

show create table Student;
1
修改表的编码方式:

alter table Student default character set utf8;

该命令用于将表Student的编码方式改为utf8;
1
2
3
修改字段的编码方式:

alter table Student change Sname Sname varchar(20) character set utf8;
(注意看截图)
该命令用于将表Student中Sname字段的编码方式改为utf8
1
2
3
改其他项同理

mesql输入中文报错的相关教程结束。

《mesql输入中文报错.doc》

下载本文的Word格式文档,以方便收藏与打印。