pymysql 连接 mysql 出现乱码问题的解决方法
这次做的玩具要使用 pymysql 连接 mysql,刚开始时读出来的中文全为 ??, 这里简单记下中文乱码的解决方法.
其实不清楚到底是以下哪步的效果,所以还是都记上吧 -_-
主要使用以下措施防止出现乱码问题
- mysql 数据库 charset=utf-8
- python 文件设置编码为 utf-8 (文件头部加上
# -*- coding: utf8 -*-) - python 连接 mysql 加上参数
charset='utf8'
mysql 服务器端
在 /etc/mysql/my.cnf 中添加如下
1 | [client] |
使用 use <database> 切换到数据库后,可使用如下指令查看字符编码
1 | show name like '%char%'; |
可使用如下指令设置默认编码格式
1 | set names utf8; |
建表 sql 语句如下
1 | CREATE TABLE client_record |
pymysql 端
在创建 pymysql.connection 对象时指定 charset 参数
1 | connect = pymysql.connect(host=host, user=user, password=password, database=database, charset='utf8') |