4

MySQLdbを使用して、すべてがutf8エンコーディングで保存されているデータベースに接続します。

私が行った場合

cursor.execute("SET NAMES utf8")

別のステートメントによってデータベースからデータをフェッチします。つまり、

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

Unicodeになりますか?それとも私は最初にそれらを回す必要がありますか

mystr.decode("utf8")

Unicodeに?

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 に答える