在Windows平台下,在cmd下安装python模块django时,报如下错误:
UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xd7 in position 9: ordinal not in range(128),原因如下,
python中字符串类型分为byte string 和 unicode string两种。
如果在python文件中指定编码方式为utf-8(#coding=utf-8),那么所有带中文的字符串都会被认为是utf-8编码的byte string(例如:mystr="你好"),但是在函数中所产生的字符串则被认为是unicode string
问题就出在这里,unicode string 和 byte string 是不可以混合使用的,一旦混合使用了,就会产生这样的错误。
解决方法:
修改mimetypes.py文件,路径位于python的安装路径下的Lib\mimetypes.py文件。在import下添加如下几行代码即可:
if sys.getdefaultencoding()!='gdk':
reload(sys)
sys.setdefaultencoding('gdk')
注意代码(缩进)格式!!!