估計這個問題是2.7的問題3.0好像就統一utf編碼了
報錯代碼:
python :ascii codec can't decode byte 0xe8 in posi
當django中報這個錯誤的時候,如果有比較詳細的文件路徑還好說就可以針對這個文件進行編碼處理。但是如果報錯中沒有文件路徑那肯定要瘋掉。
針對沒有具體的文件路徑解決辦法:
在這個地方增加代碼,manage.py
#!/usr/bin/env python
import os
import sys if __name__ == "__main__":
#重新加載sys reload(sys)
#設置編碼為utf-8 sys.setdefaultencoding('utf-8')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "cmdbs.settings") from django.core.management import execute_from_command_line execute_from_command_line(sys.argv)
這樣直接在入口更改就OK了
那么為什么要重新加載,而直接引用過來則不能調用該函數呢?
因為setdefaultencoding函數在被系統調用后被刪除了,所以通過import引用進來時其實已經沒有了,所以必須reload一次sys模塊,這樣setdefaultencoding才會為可用,才能在代碼里修改解釋器當前的字符編碼。