Python3中Django项目遇到UnicodeEncodeError: 'ascii' codec can't encode characters in ordinal not in range(128)

[toc]

问题描述

Python3中Django项目遇到UnicodeEncodeError: 'ascii' codec can't encode characters in ordinal not in range(128)

解决方案

在项目配置文件settings.py中加入如下代码:

1
2
3
import sys
import codecs
sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach())

另外注意系统的语言配置,比如Ubuntu可采用:

1
export LANG="en_US.UTF-8" #或者C.UTF-8

在运行python命令前添加参数

1
PYTHONIOENCODING=utf-8 python test.py

该参数的解释可查看官方文档:
https://docs.python.org/3.6/using/cmdline.html#envvar-PYTHONIOENCODING

主要参考:

Python3中遇到UnicodeEncodeError: ‘ascii’ codec can’t encode characters in ordinal not in range(128)

Donate comment here
xiaotiandi 微信支付

微信支付

xiaotiandi 支付宝

支付宝

xiaotiandi

公益(commonweal)微信