首先保证在终端下,MySQL的中文插入和显示都正常。
如有问题可参考Ubuntu下MySQL中文插入失败
我的问题是在终端下中文插入显示都正常,但使用Python操作MySQL插入中文时,插入的内容为乱码。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pymysql
conn = pymysql.connect(user='root', password='root', database='databasename')
cursor = conn.cursor()
cursor.execute("SET NAMES utf8")
#上面的保证中文不乱码,即声明MySQL客户的使用utf8
cursor.execute('INSERT INTO zhengzhuang VALUES(%s,%s)',['ooc', '很好'])
conn.commit()
#提交事务
cursor.close()
conn.close()
cursor.execute("SET NAMES utf8")
就是缺上面这句,即声明MySQL客户使用的是utf8。
加上后,就显示正常了!