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