0

UnicodeDecodeError が発生しました。

'utf8' codec can't decode byte 0xe5 in position 1923: invalid continuation byte

テンプレートでデンマーク文字「å」を使用しています。どうすれば問題を解決できますか?その後、Django プロジェクトとデータベースで英語以外の文字を使用できますか?

4

2 に答える 2

2

これを行うと、同様のエラー(同じバイト値に言及)が発生する可能性があります。

>>> 'å'.encode('latin-1')
b'\xe5'
>>> _.decode('utf-8')
Traceback (most recent call last):
  File "<pyshell#18>", line 1, in <module>
    _.decode('utf-8')
UnicodeDecodeError: 'utf8' codec can't decode byte 0xe5 in position 0: unexpected end of data

これは、データが utf-8 ではなく latin-1 でエンコードされていることを意味します。一般に、これには 2 つの解決策があります。入力データを制御できる場合は、UTF-8 として再保存します。それ以外の場合は、Python でデータを読み取るときに、エンコーディングを latin-1 に設定します。django テンプレートの場合、最初のものを使用できるはずです。使用するエディターには「エンコード」オプションがどこかにあり、それを utf-8 に変更して再保存すると、すべてが機能するはずです。

于 2013-04-14T06:39:02.327 に答える
0

これは私を助けましたhttps://stackoverflow.com/a/23278373/2571607

基本的に C:\Python27\Lib\mimetypes.py を開きます

交換

‘default_encoding = sys.getdefaultencoding()’

if sys.getdefaultencoding() != 'gbk':  
    reload(sys)  
    sys.setdefaultencoding('gbk')  
default_encoding = sys.getdefaultencoding() 
于 2014-11-30T01:09:26.103 に答える