最近在用Python2.7.6版本开发的的过程中发现了一个问题
提示:UnicodeDecodeError:'ascii' codec can't decode bytes 0xb0
刚开始以为是编码的问题 我设置默认编码为utf-8后问题没有解决
看了下代码 lib\mimetypes.py
发现原因是从注册表获取文件后缀的时候 不支持中文扩展名:“.阿里旺旺接收的可疑文件”
这玩意是神马东西,大家懂的。
继续找代码
read_windows_registry
在241行 def enum_types(mimedb)
修改为:
def enum_types(mimedb):
i = 0
while True:
try:
ctype = _winreg.EnumKey(mimedb, i)
except EnvironmentError:
break
try:
#print "default_encoding:"
#print ctype
ctype = ctype.encode(default_encoding) # omit in 3.x!
except :
print "err:" + ctype
ctype=""
yield ctype
else:
yield ctype
i += 1
输出 err: .阿里旺旺接收的可疑文件