Python と MySQL における Unicode とエンコーディング
エンコーディングと Unicode は、Python と MySQL の間でインターフェイスするときに対処するのが難しい問題になる可能性があります。これは、非 ASCII 文字を含むデータを操作している場合に特に当てはまります。
問題
発生したエラー:
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 204-230: ordinal not in range(256)
MySQLdb Python ライブラリが「latin-1」コーデックを使用してデータをエンコードしようとしていることを示しますが、これは処理できません0 ~ 255 の範囲外の Unicode 文字。
解決策
この問題を解決するには、主に 2 つのアプローチがあります。
1.データベース側から処理します
ALTER TABLE yahoo_questions CONVERT TO CHARACTER SET utf8;
import mysql.connector cnx = mysql.connector.connect(host='localhost', user='user', password='password', database='db_name', charset='utf8')
2. Python 側から処理します
import chardet data = data.encode('utf-8')
import MySQLdb conn = MySQLdb.connect(host='localhost', user='user', password='password', db='db_name', charset='utf8')
結論
Unicode とエンコードを適切に処理することで、エラーなく MySQL データベースにデータが挿入および取得されることを保証できます。 .
以上がPython と MySQL を使用する場合に UnicodeEncodeError を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。