これはPython 2.4です。ここに私の状況があります。私はデータベースから文字列を引いて、ウムラウト 'o'(\ xf6)を含んでいます。この時点で、型(value)を実行すると、strが返されます。次に、.decode( 'utf-8')を実行しようとすると、エラーが発生します( 'utf8'コーデックは1-4のバイトをデコードできません)。Python 2.4でユニコード文字列をデコードできません
本当に私の目標は、タイプ(値)がユニコードを返すようにすることです。いくつかの有益な情報があるearlier question が見つかりましたが、選択した回答の例は私のために実行されていないようです。私がここで間違っていることはありますか?ここで
は再現するいくつかのコードです:
Name = 'w\xc3\xb6rner'.decode('utf-8')
file.write('Name: %s - %s\n' %(Name, type(Name)))
それが最初の文に失敗したので、私は実際には、書き込みステートメントに取得することはありません。
ありがとうございました。
編集:
私は、DBの文字セットがUTF8であることを確認しました。だから私のコードを再現するには、 '\ xf6'を '\ xc3 \ xb6'に変更しましたが、まだ失敗しています。 'utf-8'と 'utf8'の違いはありますか?
コーデックをファイルに書き込む際のヒントは便利です(私は間違いなく使用します)が、このシナリオでは、デバッグの目的でログファイルに書き込むだけです。
データベーステーブルではどのような文字セットを使用していますか?私はそれがおそらくutf-8ではないと推測しています。代わりに 'decode'に渡してみてください。 – elo80ka