2016-04-15 17 views
0

文字「é」を含む文字列をcsvからデータベースに保存しようとしています。Unicode文字は? MySQL SQLAlchemy(警告:不正な文字列値)

これはエラー

lib/python2.7/site-packages/sqlalchemy/engine/default.py:425: Warning: Incorrect string value: '\x8Ert' for column 'last_name' at row 1 

は、これは私がCSVを読んでいる方法ですされています

response = requests.get(fileurl) 
    order_data = csv.DictReader(response.iter_lines()) 

は、それから私は、データベースに各行を保存します。

last_nameの元の文字列は 'Rob \ x8ert'(Robért)です。

はい、表はutf8mb4_general_ciであり、列も同様です。

私のモデルの列:

last_name = db.Column(db.String(80, convert_unicode=True)) 

私は真= convert_unicodeを削除しようとしたが、それは何もしません。

+0

ページのエンコードを確認してください。 DB接続でUTF-8に設定してください – MadeInDreams

+0

CSVファイルはどのように生成されましたか?それはそれをコード化する珍しい方法です。 –

+0

実際には '\ x8E'の4文字はありますか?あるいは、単一の8ビット文字をエスケープするものがありますか?文字列の長さを知ることができれば、この質問に答えることができます。 –

答えて

0

"é"はU + 00E9であり、U + 008Eではありません。それを格納しようとする前に実際に使用しているエンコーディングから文字列をデコードします。

+0

どうすればそれを理解できますか?通常のCSVファイルです。 –

+0

ファイルを生成した人は誰でも尋ねます。 –