Python と MySql: Unicode とエンコーディング
データベースと Python コンテキストでの Unicode 処理
Unicode データを扱う場合、データベースとデータベースの両方でそのエンコードを正しく処理することが重要です。 Python コード。提示された質問に見られるように、Unicode 文字が適切に処理されないとエンコード エラーが発生する可能性があります。
データベース側から Unicode を処理する
1 つのアプローチは、MySQL データベースを変更することです。 Unicode エンコードをサポートするためのテーブル。これを行うには、影響を受ける列を変更して UTF-8 文字エンコーディングを使用するようにします。たとえば、「yahoo_questions」テーブルの「question_subj」列は次のように変更できます。
ALTER TABLE yahoo_questions MODIFY COLUMN question_subj VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci;
Python 側からの Unicode の処理
または、次のように変更できます。データを MySQL に送信する前に、Python で Unicode エンコードを処理します。これには、データベースにデータを挿入する前にデータを UTF-8 にエンコードすることが含まれます。
提供された Python コード スニペットでは、MySQLdb ライブラリを使用してデータベースに接続します。接続時に charset='utf8' パラメータを指定すると、ライブラリで UTF-8 エンコーディングが使用されるようになります。
db = MySQLdb.connect(**db_config, charset='utf8')
さらに、データを挿入するときは、次を使用してデータを明示的に UTF-8 にエンコードする必要があります。 encode() 関数:
cur.execute("INSERT INTO yahoo_questions (question_subj, question_content, ...) VALUES (%s, %s, ...)", (row[5].encode('utf8'), row[6].encode('utf8'), ...))
データベースまたは Python 側から Unicode エンコードを適切に処理することで、Unicode を解決できます。エラーを修正し、データの挿入と取得が適切に行われるようにします。
以上がエラーを回避するために、Python および MySQL で Unicode エンコーディングを適切に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。