python 編碼問題:'ascii' codec can't encode characters in position 的解決方案

報錯:

'ascii' codec can't encode characters in position 8-50: ordinal not in range(128)

python2.7 django項目 編碼問題

安裝好django suit後,運行服務器:
python manage.py runserver
 


在表單頁面輸入中文,保存時,出現如下錯誤:
UnicodeEncodeError at /admin/ModelApp/server/1/change/
'ascii' codec can't encode characters in position 0-4: ordinal not in range(128)
Request Method: POST
Request URL: http://127.0.0.1:8000/admin/ModelApp/server/1/change/
Django Version: 1.11.5
Exception Type: UnicodeEncodeError
Exception Value: 
'ascii' codec can't encode characters in position 0-4: ordinal not in range(128)
Exception Location: D:\Python\27\lib\site-packages\django-1.11.5-py2.7.egg\django\utils\encoding.py in force_text, line 80
Python Executable: D:\Python\27\python.exe
Python Version: 2.7.13
Python Path: 

 

解決方法:
在manage.py頭部加入如下代碼
:

import sys
reload(sys)
sys.setdefaultencoding('utf8')


如:
# -*- coding: utf-8 -*-
#!/usr/bin/env python
import os
import sys
reload(sys)
sys.setdefaultencoding('utf8')


if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "GM_yaowentan.settings")
    try:
        from django.core.management import execute_from_command_line
    except ImportError:
        # The above import may fail for some other reason. Ensure that the
        # issue is really that Django is missing to avoid masking other
        # exceptions on Python 2.
        try:
            import django
        except ImportError:
            raise ImportError(
                "Couldn't import Django. Are you sure it's installed and "
                "available on your PYTHONPATH environment variable? Did you "
                "forget to activate a virtual environment?"
            )
        raise
    execute_from_command_line(sys.argv)

參考文章:http://bbs.csdn.net/topics/391492220

https://www.cnblogs.com/yhl-yh/p/6728567.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章