utf8_client_read_mysql_table_code_in_latin1
作者:互联网
utf8客户端读取_latin1编码的mysql表
转载注明来源: 本文链接 来自osnosn的博客,写于 2020-09-06.
以下提到的编码问题,mysql 和 mariadb 是一样的解决办法。
背景环境
- 早期创建的mysql table 表缺省编码
default charset=latin1
- 表中写入的中文是
gbk
编码的。 - mysql 中 查看表的缺省编码
show create table tb_name
最后一行DEFAULT CHARSET=
就是表的编码格式。
mysql client
- 因为终端是 utf8 的,用 mysql 命令连接数据库后,查询结果,中文是乱码。
- 解决办法,先执行
set names latin1
即可。
- 解决办法,先执行
python/MySQLdb, python3/mysqlclient
- 连接数据库指定参数
charset
,use_unicode
db=MySQLdb.connect(host='localhost', ... ,charset='latin1',use_unicode=False)
查询返回的值,全是 bytes 类型的。只需 加上result.decode('utf8')
中文就能正常显示了。
use_unicode=True
, 返回的是 str 类型use_unicode=False
, 返回的是 bytes 类型
标签:编码,use,code,latin1,read,utf8,unicode,mysql 来源: https://www.cnblogs.com/osnosn/p/13636739.html