4

使用 MySQLdb 我连接到一个数据库,其中所有内容都以 utf8 编码存储。

如果我做

cursor.execute("SET NAMES utf8")

并通过另一条语句从数据库中获取一些数据。这是否意味着,字符串在

cursor.execute("SELECT ...")
cursor.fetchall()

会是 unicode 吗?还是我必须先通过

mystr.decode("utf8")

到统一码?

4

1 回答 1

10

文档

连接(参数...)
...

use_unicode

如果为 True,CHAR 和 VARCHAR 以及 TEXT 列将使用配置的字符集作为 Unicode 字符串返回。最好在服务器配置或客户端配置中设置默认编码(使用 read_default_file 读取)。如果在连接后更改字符集(MySQL-4.1 及更高版本),则需要在 connection.charset 中输入正确的字符集名称。

如果为 False,类似文本的列将作为普通字符串返回,但您始终可以编写 Unicode 字符串。

这必须是关键字参数。

于 2011-05-14T10:34:59.287 回答