2011-12-07 15 views
1

を挿入します。のMySQL-Pythonの文字エンコーディング例外デシベルに行を保存しようとしたときに、私は次の例外を取得しています

Unexpected error: (<type 'exceptions.UnicodeEncodeError'>, UnicodeEncodeError('latin-1', u"First 'A\u043a' Last", 7, 8, 'ordinal not in range(256)'), <traceback object at 0x106562908>) 

挿入する前に、私はこのようなlatin-1に辞書内のすべての文字列を変換しています:

for k,v in row.items(): 
    if type(v) is str: 
     row[k] = v.decode('utf-8').encode('latin-1') 

問題の文字は'A\u043a'のようです - それ以外の場合にも、他の文字があるように思えない「範囲内です。」

ヘルプありがとうございます。

答えて

1

解決済み。問題は、すでにUTF-8だった文字列をデコードしようとしていたことです。私はまた、これは、任意の非符号化可能な文字に置き換えされることを保証

v.encode('latin-1', 'ignore') 

encode()引数に「無視」を追加しました「?」

関連する問題