MySQL的
utf8mb4编码是 只是标准的UTF-8 。
但是,他们必须添加该名称,以使其与仅支持BMP字符的 损坏的
UTF-8字符集区分开。
换句话说,在Python端,与MySQL对话时,应始终编码为UTF-8,但要考虑到,除非
utf8mb4在MySQL端
使用,否则数据库可能无法处理U + FFFF以外的Unipre代码点。
但是,一般而言,您要避免 手动
编码和解码,而不必为此
MySQLdb担心。为此,您可以配置连接和排序规则以透明地处理Unipre文本。对于
MySQLdb,这意味着设置
charset='utf8mb4':
database = MySQLdb.connect( host=hostname, user=username, passwd=password, db=databasename, charset="utf8mb4")
然后使用普通的Python 3
str字符串;将
use_unipre选项设置为默认
True*。
注意:这可以 为您 处理
SET NAMES和
SETcharacter_set_connection),因此无需手动发布。 __
*除非您仍然使用Python 2,否则默认值为
False。将其设置为
True并使用
u'...'unipre字符串。



