使用 MySQLdb 我连接到一个数据库,其中所有内容都以 utf8 编码存储。
如果我做
cursor.execute("SET NAMES utf8")
并通过另一条语句从数据库中获取一些数据。这是否意味着,字符串在
cursor.execute("SELECT ...")
cursor.fetchall()
会是 unicode 吗?还是我必须先通过
mystr.decode("utf8")
到统一码?
使用 MySQLdb 我连接到一个数据库,其中所有内容都以 utf8 编码存储。
如果我做
cursor.execute("SET NAMES utf8")
并通过另一条语句从数据库中获取一些数据。这是否意味着,字符串在
cursor.execute("SELECT ...")
cursor.fetchall()
会是 unicode 吗?还是我必须先通过
mystr.decode("utf8")
到统一码?
从文档:
连接(参数...)
...
use_unicode
如果为 True,CHAR 和 VARCHAR 以及 TEXT 列将使用配置的字符集作为 Unicode 字符串返回。最好在服务器配置或客户端配置中设置默认编码(使用 read_default_file 读取)。如果在连接后更改字符集(MySQL-4.1 及更高版本),则需要在 connection.charset 中输入正确的字符集名称。
如果为 False,类似文本的列将作为普通字符串返回,但您始终可以编写 Unicode 字符串。
这必须是关键字参数。