Django在Windows中因ImageField导致的ascii/utf-8编码错误

0 投票
2 回答
1251 浏览
提问于 2025-04-18 06:37

我在Windows上运行Django应用。

我发现当我在一个模型里添加了ImageField之后,应用就停止工作了(当我把这个字段注释掉时,应用又能运行)。

我遇到了以下错误:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xb3 in position 35: ordinal not in range(128)

我尝试设置了一些本地变量:

export LANG='en_US.UTF-8' 
export LC_ALL='en_US.UTF-8'
export LC_LANG='en_US.UTF-8'

但这并没有帮助...

我还尝试在manage.py中更改系统编码:

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

但我得到了以下错误:

UnicodeDecodeError: 'utf8' codec can't decode byte 0xb3 in position 35: invalid start byte

我该如何解决这个问题呢?

2 个回答

0

我想到了一些可能的解决办法。首先,可以试着用base64来编码,而不是直接编码。你也可以尝试使用UTF-16作为编码方式,看看这样是否有帮助。

0

你用的是Python 2.x吗?那就把这一行加到文件的开头。

# -*- coding: utf8 -*-

或者你可以看看这个回答

撰写回答