pymysql 解决utf8mb4扩展

瀚海星空 2017-02-28
梦想家 2017-02-28

问题

在将一些emoji表情符号入库时, 发现utf8的表插入会失败. mysql5.6以上支持utf8mb4的扩展, 必须配置相应的扩展, 并且客户端python程序采用最新的pymysql,设置charset=’utf8mb4’才可以正确插入. 采用MySqlDB则不能解决该中文乱码问题. 创建库的缺省编码指定utf8mb4

CREATE DATABASE `data_v1` DEFAULT CHARACTER SET utf8mb4
# coding:utf8
# author:zhh
# 2017.2.28
# 以前写的一个插入utf8mb4扩展解决表情符等乱码问题
import pymysql

def getConn():
    conn=pymysql.connect(host='10.43.4.148',
                         port=3306,
                         user='myuser',
                         passwd='pwd',
                         charset='utf8mb4',
                         db='data_v1')
    return conn

def insert(conn):
    cur = conn.cursor()
    mystr = "zhh2爱我的请举手🙋,爱我的请举手..."
    sql = "insert into news_content_new (content) values('%s')"%mystr
    cur.execute(sql)
    conn.commit()
    cur.close()
    conn.close()

if __name__ == "__main__":
    conn = getConn()
    insert(conn)

参考


如非注明转载, 均为原创. 本站遵循知识共享CC协议,转载请注明来源