django项目运行因中文而出现的乱码报错解决总结

django项目开发过程当中,碰到了多种状况下的中文乱码报错,在这儿作一下处理总结。
报错:UnicodeEncodeError: 'ascii' codec can't encode characters in position x-x: ordinal not in range(128)数据库

1.因代码中的中文注释问题的报错

django项目的.py文件文件中加入了中文注释,常常会所以报错而致使没法运行,究其缘由是编码的问题,最后的解决办法是直接在有中文注释的.py文件的顶部加上:django

# -*-coding:utf-8 -*-

2.运行过程当中的中文乱码的报错

首先确保链接的数据库的基础设置是utf-8:windows

clipboard.png

而后确认django项目中的网页头部设置编码为utf-8,网页头部加上代码:bash

<meta charset="utf-8">

最后仍然报错就是由于django项目中咱们没有指明编码方式,因此按照默认设置来,而非正常的utf-8,为:服务器

clipboard.png

因此项目最后须要在进行编码操做的地方,或者直接在settings.py中加入:测试

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

3.项目配置在debian系统中,FileField字段在admin中因中文文件名上传报错

在一个django项目中发现,在本地windows测试环境中,django admin的文件上传功能毫无障碍,但是当项目布置在debian环境中时,中文文件名的文件在admin中没法上传,而且报中文乱码的错,该错误的主要缘由来自系统编码问题,该debian系统中未设置系统编码语言,均为默认设置,致使所布置的项目没法正常运行,解决以下:
(1).终端中操做安装locales编码

apt-get install locales

(2).从新选择字符编码spa

dpkg-reconfigure locales

(3).空格选择全部zh_开头的字符编码,OK确认下一步,选择中文UTF-8code

clipboard.png

clipboard.png

clipboard.png

(4).debian里须要在~/.bashrc里面最下面加入export LC_ALL=zh_CN.UTF-8或者直接运行export LANG=zh_CN.UTF-8
(5).最后直接reboot重启服务器,查看系统编码,UTF-8中文生效,locale命令能够直接查看系统编码设置,此时再运行django项目上传中文名文件无误。ip

相关文章
相关标签/搜索