MySQL pyMySQL 配置连接字符集

MySQL pyMySQL 配置连接字符集

在使用MySQL作为后端数据库时,pyMySQL 是一个非常好的 Python 原生库,它不需要太多的代码就可以连接和操作MySQL数据库。pyMySQL的默认字符集是utf8mb4,而MySQL的字符集是可以配置的。

在实际使用过程中,我们可能需要将连接字符集设置成不同的字符集,以适应不同的情况。例如,我们的数据库中可能含有特殊字符,就需要使用一些不同于utf8mb4的字符集,如:gbk、big5等。

这篇文章将介绍如何在 pyMySQL 中设置连接字符集。

阅读更多:MySQL 教程

pyMySQL 设置字符集

pyMySQL 支持配置客户端和服务器连接的字符集。而set_charset_collation() 是pyMySQL库提供的一个函数,可以用于设置连接的字符集和排序规则。

set_charset_collation() 函数可以设置2个参数:charset和collation。其中charset表示字符集,collation表示排序规则。

import pymysql

conn = pymysql.connect(
  host="localhost",
  user="root",
  password="123456",
  database="test",
  charset='utf8mb4'  # 设置连接字符集
)

cursor = conn.cursor()
cursor.execute("SELECT VERSION()")

data = cursor.fetchone()
print("Database version : %s " % data)

cursor.close()
conn.close()

在上述代码中,我们使用了conn对象的charset属性将配置字符集设置为 utf8mb4。

pyMySQL 支持的字符集

pyMySQL 默认的字符集是 utf8mb4。但是,pyMySQL 支持多种字符集,分别如下:

  • ascii

    ASCII字符集,表示7位的字符编码。

  • big5

    中文BIG5字符集,台湾、香港使用。

  • cp850

    DOS上使用的字符集。

  • cp852

    类似于ISO-8859-2字母字符集的扩展字符集,主要用于东欧。

  • cp866

    众所周知的PCP的字符集,主要用于俄罗斯。

  • cp932

    windows环境中的shift-JIS。

  • euc_jp

    日本字符集,单字节和双字节字符。

  • euc_kr

    韩国字符集,单字节和双字节字符。

  • gb18030

    中国中文标准,支持多种中文汉字及其他一些国际字符。

  • gbk

    非Unicode的中文编码,用于简体中文。

  • latin1

    ISO-8859-1字符集,欧洲使用。

  • latin2

    ISO-8859-2字符集,东欧使用。

  • latin5

    ISO-8859-9字符集,土耳其使用。

  • mac_cyrillic

    Macintosh Cyrillic字符集,用于俄罗斯等国的Cyrillic字符支持。

  • Windows-1251

    Windows的Cyrillic字符集。

配置单个表字符集

如果我们仅需要特定表使用不同的字符集,那么可以使用特定的DML来实现。例如,将一个名叫mytable的表的字符集设置成gbbk,可以使用如下DML语句:

ALTER TABLE mytable CONVERT TO CHARACTER SET gbk;

总结

pyMySQL是一个非常方便的Python库,不需要太多的代码就可以连接和操作MySQL数据库。本文介绍了在pyMySQL中设置连接字符集的方法,以及pyMySQL支持的字符集。这对于我们在实际使用中遇到的字符集问题非常有用。通过设置正确的字符集,我们可以尽可能地避免出现乱码问题,并且得以更加顺利地进行数据的操作。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程