Docker中使用uWSGI启动Django项目报错 'ascii' codec can't encode characters in position 223-224: ordinal not in range(128)
运行环境
- Docker
- uWSGI
- Django
问题出现
使用python manage.py runserver
启动项目,没有出现这个问题,但是使用uWSGI启动项目后,接受到POST请求中带有中文,就报500错误。开启DEBUG模式,捕捉到错误提示为
'ascii' codec can't encode characters in position 223-224: ordinal not in range(128)
原因
系统语言不是utf-8
的编码
查看当前本机编码
locale
可以发现值都是POSIX
LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
解决方法
-
安装
en_US.UTF-8
locale-gen en_US.UTF-8
如果出现错误,需要先安装
locale-gen
apt-get install locale-gen -y
-
设置系统编码
编辑/etc/profile
,在文件最末尾添加如下内容:export LC_ALL=en.US.UTF-8
-
重新编译
source /etc/profile
参考文章:https://blog.csdn.net/qq_35371031/article/details/105602321
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧