Модуль MySQLdb в python возвращает кодировку utf8 или unicode в этом случае? - PullRequest
4 голосов
/ 14 мая 2011

Используя MySQLdb, я подключаюсь к базе данных, где все хранится в кодировке utf8.

Если я делаю

cursor.execute("SET NAMES utf8")

и извлекаю некоторые данные из базы данных другим оператором.Значит ли это, что строки в

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

будут в юникоде?Или мне нужно сначала повернуть их на

mystr.decode("utf8")

в юникоде?

1 Ответ

10 голосов
/ 14 мая 2011

С документы :

подключение (параметры ...)
...

use_unicode

Если True, столбцы CHAR и VARCHAR и TEXT возвращаются как строки Unicode, используя настроенный набор символов. Лучше всего установить кодировку по умолчанию в конфигурации сервера или конфигурации клиента (читается с помощью read_default_file). Если вы измените набор символов после подключения (MySQL-4.1 и более поздние версии), вам нужно будет указать правильное имя набора символов в connection.charset.

Если False, текстоподобные столбцы возвращаются как обычные строки, но вы всегда можете написать строки Unicode.

Это должен быть параметр ключевого слова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...