2011-10-29 9 views
0

私はutf-8照合で2つのテーブルを持っています。 次のように私は1つのテーブルから行をフェッチし、他にそれを挿入するためにはDjangoを使用しています:Djangoモデルのエンコーディングエラー

'ascii' codec can't encode characters in position 17-18: ordinal not in range(128)

その理由は何ですか:

cursor.execute("select * from Table1") 
results = dictfetchall(cursor) 
for row in results: 
    table2_row = Table2(name=row["Name"]) 
    table2_row.save() 

問題は、私は時々エラーを取得するということですエラー?どちらのテーブルもutf-8照合を使用します。

+1

は、あなたは '#coding書かれている:このようなrow['name']を割り当てることが
、3-みては? –

+0

完全なトレースバックを貼り付けます。質問の中のコードで判断すると、 '#coding:utf-8'は必要ありません。 –

答えて

0

は、これらの作品をやろう:

1-
2-このスニペットのようなあなたのデータベースを作成します。あなたのキャラクターは、ときに設定定義あなたのモジュールの上に# encoding: UTF-8を追加します。
Create Database DB_NAME CHARACTER SET = UTF8。最初にUTF-8`:
name = row['name'].encode('utf8')