Utf-8で文字のエンコードに問題があります。私はDjangoを使用していて、Androidプレーンテキスト以外の通知を送信しようとしたときにこのエラーが発生しました。エラーの原因を見つけようとし、なんとかして解決しましたエラーの原因が私のプロジェクトにないこと。
python Shellで、次のように入力します:
'ç'.encode('utf8')
そして私はこのエラーを受け取ります:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe7 in position 0: ordinal not in range(128)
私は同じエラーを受け取ります:
'á'.encode('utf-8')
unicode('ç')
'ç'.encode('utf-8','ignore')
Smart_text、force_text、smart_bytesでもエラーが発生します。
Python、私のOS、または別の問題ですか?
私はPython 2.6.6をRed Hatバージョン4.4.7-3で実行しています
Unicode文字列ではなく、文字列をエンコードまたはデコードしようとしている。次のステートメントは機能します。
u'ç'.encode('utf8')
u'á'.encode('utf-8')
unicode(u'ç')
u'ç'.encode('utf-8','ignore')
使用する u'...'
、接頭辞u
がない場合は、Unicode文字列ではなくバイト文字列です。:
>>> u'ç'.encode('utf8')
'\xc3\xa7'