博客
关于我
python insert插入mysql 中文字符报错 及mysql编码介绍
阅读量:297 次
发布时间:2019-03-03

本文共 1174 字,大约阅读时间需要 3 分钟。

Python代码连接mysql数据库执行mysql语句 插入带有中文字符的语句 

报错内容如下:  

  cur.execute(sql)

  File "build/bdist.linux-x86_64/egg/MySQLdb/cursors.py", line 181, in execute
    query = query.encode(db.unicode_literal.charset)
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 952-954: ordinal not in range(256)
2020-07-21 11:23:47,644 - exec_make.py:134 - Exception Logged
Traceback (most recent call last):
  File "exec_make.py", line 127, in Exch_insert
    cur.execute(sql)
  File "build/bdist.linux-x86_64/egg/MySQLdb/cursors.py", line 181, in execute
    query = query.encode(db.unicode_literal.charset)
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 952-954: ordinal not in range(256)
 

 

处理办法:

0、python代码 默认编码 utf-8

1、插入的中文前面加上前缀  u 声明utf编码

insert  "name": u"中文"

2、在插入执行的语句前面执行一下语句

conn = connectMysql()

cur = conn.cursor()

conn.set_character_set('utf8')

cur.execute('SET NAMES utf8;')
cur.execute('SET CHARACTER SET utf8;')
cur.execute('SET character_set_connection=utf8;')
cur.execute(sql)

解决OK!

【mysql编码介绍】

1、编码 encode编码  decode解码
utf-8是unicode实现的方法之一  Unicode 是「字符集」UTF-8 是「编码规则」
字符集:为每一个「字符」分配一个唯一的 ID(学名为码位 / 码点 / Code Point)
编码规则:将「码位」转换为字节序列的规则(编码/解码 可以理解为 加密/解密 的过程)

 

 

 

转载地址:http://ncem.baihongyu.com/

你可能感兴趣的文章
服务调用
查看>>
SpringCloud
查看>>
fegin
查看>>
GateWay限流
查看>>
setnx
查看>>
Java取绝对值
查看>>
线程的start()方法
查看>>
for循环读取数组遇问题:dexError: invalid index to scalar variable.
查看>>
编写测试用例的实用小技巧
查看>>
c语言贪吃蛇控制台版
查看>>
Windows10 下springboot应用无法被外部网络访问
查看>>
报错:在IDEA中springboot项目操作数据库,配置文件驱动com.mysql.cj.jdbc.Driver标红
查看>>
redis报错(error) NOAUTH Authentication required.解决办法
查看>>
对象和封装
查看>>
【树形dp】P1273 有线电视网
查看>>
【分层图最短路】P4568 [JLOI2011]飞行路线
查看>>
【最短路】P4408 [NOI2003]逃学的小孩
查看>>
2020C证(安全员)模拟考试题及C证(安全员)模拟考试系统
查看>>
2020电工(初级)考试及电工(初级)考试软件
查看>>
2020N1叉车司机模拟考试题库及N1叉车司机复审模拟考试
查看>>