sqlalchemy.exc.InternalError: (pymysql.err.InternalError) (1366, "Incorrect string value: '\\xE4\\xB

问题出现:
数据写入数据库时,报的错误

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;

参考
查看mysql数据库及编码方式

发布了73 篇原创文章 · 获赞 24 · 访问量 2556

猜你喜欢

转载自blog.csdn.net/weixin_44943394/article/details/104917403