UnicodeEncodeError: 'latin-1' codec can't encode character

最近使用pymysql向数据库中插入中文时报错:UnicodeEncodeError: ‘latin-1’ codec can’t encode character ‘\u91cc’ in position 30: ordinal not in range(256)
解决办法:
首先在用mysql创建数据库时要保证指定编码格式:CREATE DATABASE mytest DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
然后配合使用以下任何一种方式即可:

1.创建连接时指定charset

 db_connect = pymysql.connect(host="localhost", user="root",passwd="xxx", db="xxx", charset='utf8')

2.修改connections.py
ubuntu中connections.py文件在/usr/local/lib/python3.5/dist-packages/pymysql
这里写图片描述
将上图中的DEFAULT_CHARSET = ’latin1‘修改为DEFAULT_CHARSET = ’utf8‘ 注意不是utf-8
或者将下图中的charset=” 修改为charset=’utf8’
这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_29666899/article/details/80260399