python3 pymysql 'latin-1' codec can't encode character 错误 问题解决
2018-03-06 16:35
1391 查看
完整代码:
#coding: utf-8
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost","root","00000000","TESTDB" ,use_unicode=True, charset="utf8")
# 若没有 use_unicode=True, charset="utf8" 那么就会发生如题错误:
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# SQL 插入语句
sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
LAST_NAME, AGE, SEX, INCOME)
VALUES ('测', '试', 20, '男', 99999)"""
#db.set_character_set('utf8')
cursor.execute('SET NAMES utf8;')
cursor.execute('SET CHARACTER SET utf8;')
cursor.execute('SET character_set_connection=utf8;')
try:
# 执行sql语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
print(" 没有错误 请党和组织人民放心! ")
except Exception as e:
print(e)
# 如果发生错误则回滚
print(" 发生错误")
db.rollback()
# 关闭数据库连接
db.close()
执行结果如下:
问题原因:
pymysql 正常情况下会尝试将所有的内容转为latin1字符集处理
解决思路:
设置连接和游标的charset为你所希望的编码,如utf8
参考网站:
http://stackoverflow.com/questions/3942888/unicodeencodeerror-latin-1-codec-cant-encode-character
#coding: utf-8
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost","root","00000000","TESTDB" ,use_unicode=True, charset="utf8")
# 若没有 use_unicode=True, charset="utf8" 那么就会发生如题错误:
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# SQL 插入语句
sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
LAST_NAME, AGE, SEX, INCOME)
VALUES ('测', '试', 20, '男', 99999)"""
#db.set_character_set('utf8')
cursor.execute('SET NAMES utf8;')
cursor.execute('SET CHARACTER SET utf8;')
cursor.execute('SET character_set_connection=utf8;')
try:
# 执行sql语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
print(" 没有错误 请党和组织人民放心! ")
except Exception as e:
print(e)
# 如果发生错误则回滚
print(" 发生错误")
db.rollback()
# 关闭数据库连接
db.close()
执行结果如下:
问题原因:
pymysql 正常情况下会尝试将所有的内容转为latin1字符集处理
解决思路:
设置连接和游标的charset为你所希望的编码,如utf8
参考网站:
http://stackoverflow.com/questions/3942888/unicodeencodeerror-latin-1-codec-cant-encode-character
相关文章推荐
- python3 pymysql 'latin-1' codec can't encode character 错误 问题解决
- python3 pymysql 'latin-1' codec can't encode character 错误 问题解决
- python mysql数据库 'latin-1' codec can't encode character错误问题解决
- python mysql数据库 'latin-1' codec can't encode character错误问题解决
- python mysql数据库 'latin-1' codec can't encode character错误问题解决
- Python, MySQLdb 编码问题 UnicodeEncodeError:'latin-1' codec can't encode character ...
- python编码问题——解决python3 UnicodeEncodeError: 'gbk' codec can't encode character '\xXX' in position XX
- python编码问题——解决python3 UnicodeEncodeError: 'gbk' codec can't encode character '\xXX' in position XX
- Python错误解决:UnicodeEncodeError: 'latin-1' codec can't encode characters in position
- python3 'gbk' codec can't encode character '\xa0'问题的解决
- Python3 解决编码问题: `UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position 10: ille
- Python的Ftplib问题:UnicodeEncodeError: 'latin-1' codec can't encode characters的解决方法
- Python3 解决编码问题: `UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position 10: ille
- python3错误——UnicodeEncodeError: 'latin-1' codec can't encode character...
- python mysql数据库 'latin-1' codec can't encode character错误问题解决
- python “UnicodeEncodeError: 'gbk' codec can't encode character问题解决。
- 解决python3 UnicodeEncodeError: 'gbk' codec can't encode character '\xXX' in position XX
- 解决Python2.7的UnicodeEncodeError: 'ascii' codec can’t encode异常错误
- Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
- 解决Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误