问题出现:
数据写入数据库时,报的错误
sqlalchemy.exc.InternalError: (pymysql.err.InternalError) (1366, "Incorrect string value: '\\xE4\\xB8\\xAD\\xE5\\x9B\\xBD' for column 'country_name' at row 1")
一开始一直以为是我字段的问题,就反复确认字段是否有错误,后来,发现是utf8的问题;
解决方案:
建立数据库时,应该设置utf8格式;
create database ZYW53NCP character set utf8;
再进行代码建模,以及数据的输入,就没有问题了;
数据库属性设置成utf8;
数据库里的表属性也设置utf8;
延伸
1.如何查看和修改数据库编码?
创建数据库时指定数据库的字符集:
create database <数据库名> character set utf8;
查看编码:
> show create database ZYW53NCP;
修改数据库的编码格式:
alter database <数据库> character set utf8;
2.如何查看和修改表属性编码?
创建数据表时指定数据表的编码格式:
create table tb_books(
name varchar(45) not null,
price double not null,
bookCount int not null,
author varchar(45) not null) default charset = utf8;
查看:
show create table <表名>
修改数据表格编码格式
alter table <表名> character set utf8;
修改字段编码格式
alter table <表名> change <字段名> <字段名> <类型> charset set utf8;
alter table tb_books change name name varchar(20) character set utf8 not null;