mysql(私の選択ではありません)を使用すると、すべてが、に設定されutf8
ますutf8_general_ci
。通常の場合、すべてがutf8
幸せです。
ただし、sth like É’s
、someをPOSTし、それを通常どおりデータベースに保存すると、結果のモデルフィールドをlatin1
呼び出すことができません。.decode('utf-8')
>>> myinstance.myfield.decode('utf-8')
...
UnicodeEncodeError: 'ascii' codec can't encode character u'\xc9' in position 7: ordinal not in range(128)
としてデコードできるように、すべての受信データをクリーンアップしたいと思いますutf8
。
このようなアプローチを試みると、UnicodeEncodeError
前払いが発生します。
編集:ダニエルの答えが示唆するように、この質問は誤解から来ています。latin1
ここでは犯人ではありません。.decode('utf-8')
ASCIIにエンコードしようとするため、のようなUnicodeでは失敗しu'팩맨'.decode('utf-8')
ます。私が今知っていることを知って、この質問を残すのは私を苦しめます。しかし、多分それは誰かを助けるでしょう。データは実際にはユニコードとして戻ってくるので、私たちがやろうとしていたことは実際にはと同等だったと思いますu'É’'.decode('utf-8')
。