python3 UnicodeError 'ascii' codec can't encode characters in position...问题解决方法

一:问题环境

ubuntu 16.04
python3.5
django2.0

二:问题描述

使用django ImageField 字段 在admin后台页面上传图片时,如果图片文件名称中含有中文字符,则报错,具体错误如下:
在这里插入图片描述

三:解决方案

如果你使用了网络上的各种解决方案后,还未真正解决问题,那么应该是系统字符编码设置问题。

1.查看当前系统字符编码

root@ubuntu~:locale
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN.utf8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=zh_CN.UTF-8

2.查看当前系统支持的字符编码

root@ubuntu~:locale -a
C
C.UTF-8
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8

3.查看locale文件

root@ubuntu~:cat /etc/default/locale
LANG="en_US"

4.执行locale-gen zh_CN.UTF-8拉取中文编码(需要root权限)

root@ubuntu~:locale-gen zh_CN.UTF-8
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (zh_CN.UTF-8)
Generating locales (this might take a while)...
  zh_CN.UTF-8... done
Generation complete.

5.验证系统支持的字符集,是否已经增加了zh_*等中文字符集

root@ubuntu~:locale -a
C
C.UTF-8
en_AG
en_AG.utf8
en_AU.utf8
...
zh_CN.utf8

6.修改文件/etc/default/locale内容为:

LANG=zh_CN.UTF-8

7.执行sudo dpkg-reconfigure locales命令,进入操作界面,具体操作流程:

选中 zh_CN GB2312,zh_CN.GBK GBK,zh_CN.UTF-8 UTF-8 (按空格就是选中);
然后tab键到ok,点击ok以后会跳转到下一界面,选中zh_CN.UTF-8,然后ok就可以了

参见博文:https://www.cnblogs.com/yjt1993/p/10343075.html

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值