资讯专栏INFORMATION COLUMN

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

PumpkinDylan / 1748人阅读

摘要:项目开发过程中,碰到了多种情况下的中文乱码报错,在这儿做一下处理总结。

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

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

django项目的.py文件文件中加入了中文注释,经常会因此报错而导致无法运行,究其原因是编码的问题,最后的解决办法是直接在有中文注释的.py文件的顶部加上:

# -*-coding:utf-8 -*-
2.运行过程中的中文乱码的报错

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

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


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

所以项目最后需要在进行编码操作的地方,或者直接在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).重新选择字符编码

dpkg-reconfigure locales

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

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/40984.html

相关文章

  • Python编码问题及中文解决方案

    摘要:中国人民看到这样很不错,于是就把这种汉字方案叫做。结果扩展之后的编码方案被称为标准,包括了的所有内容,同时又增加了近个新的汉字包括繁体字和符号。 声明:文章借鉴自【彻底搞懂 python 中文乱码问题】 一. 各种编码的由来 1.1 ASCII编码 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为...

    kevin 评论0 收藏0
  • mac中python读取csv文件编码报错问题解决

    摘要:之前在写一个简单的分班程序的时候,使用如下命令行读取文件出现了报错含义为程序由于文件编码问题无法读取文件。该行声明了该程序读取文件的编码格式为。如仍报错,可使用方法二解决。第二种使用命令,修改后文件出现乱码。 注:该文章基于mac环境。 之前在写一个简单的分班程序的时候,使用如下命令行读取csv文件, with open(city.csv) as f: lines = f.re...

    paulli3 评论0 收藏0
  • Django 流式响应中文csv样例

    摘要:在里,流式响应是个好东西可以快速节省内存地产生一个大型文件。目前项目里用于流式响应的一个是,用于改善跨系统通讯时用户产生的慢速的感觉。 在Django里,流式响应StreamingHttpResponse是个好东西,可以快速、节省内存地产生一个大型文件。 目前项目里用于流式响应的一个是Eventsource,用于改善跨系统通讯时用户产生的慢速的感觉。这个不细说了。 还有一个就是生成...

    only_do 评论0 收藏0

发表评论

0条评论

PumpkinDylan

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<