您的位置:首页 > 编程语言 > Python开发

Python UnicodeDecodeError 解决办法

2013-12-20 14:45 260 查看
背景

最近在学习django,今天在启动django admin的时候,发现admin 默认的css没有加载到,然后一直报这个错误,然后去Google。

开始以为是css路径的问题,就各种改settings下的路径设置,发现怎么改也不对,后来经过一上午的搜索,发现这是Python 2.x 的bug。

抛异常的具体信息如下:

File "D:\Program Files\Python 2.7\lib\mimetypes.py", line 249, in enum_types
ctype = ctype.encode(default_encoding) # omit in 3.x!
UnicodeDecodeError: 'ascii' codec can't decode byte 0xbc in position 0: ordinal not in range(128)

解决办法:
根据提示打开 \Python 2.x\lib\mimetypes.py  

def enum_types(mimedb):
i = 0
while True:
try:
ctype = _winreg.EnumKey(mimedb, i)
except EnvironmentError:
break
#try:
#ctype = ctype.encode(default_encoding) # omit in 3.x!
#except UnicodeEncodeError:
#pass
else:
yield ctype
i += 1
如上,注释或者去掉其中的 

try:
ctype = ctype.encode(default_encoding) # omit in 3.x!
except UnicodeEncodeError:
pass然后重新运行django admin即可
参考自 http://stackoverflow.com/questions/4237898/unicodedecodeerror-ascii-codec-cant-decode-byte-0xe0-in-position-0-ordinal

Python 官方bug描述 http://bugs.python.org/issue10490
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python ascii