关于'ascii' codec can't encode characters in position 的问题

2018-01-12 11:36:54 +08:00
 chengxiao
为什么已经用了 Python3 了 而且在头部加了# encoding=utf8
还是会出现 ascii' codec can't encode characters in position 的报错

快被这个问题搞疯了 ,Mac 本机测试正常,以 uwsgi 跑在 ubuntu 上就报错
3862 次点击
所在节点    Python
9 条回复
lhx2008
2018-01-12 11:39:45 +08:00
命令行可能不支持 unicode 输出,print 前先 encode
chengxiao
2018-01-12 11:41:52 +08:00
@lhx2008 是 Django 里用的 ImageFiled, 只要上传中文名称的图片 就报错
xawsolevo
2018-01-12 12:33:49 +08:00
可以试试先 encode 到 latin 再 decode 为 utf8
est
2018-01-12 12:34:50 +08:00
用的 windows ?
chengxiao
2018-01-12 13:22:05 +08:00
@est 不啊 Ubuntu16.04 Nginx uwsgi python3.6
privatez
2018-01-12 13:24:49 +08:00
import sys

reload(sys)

sys.setdefaultencoding('utf8')

试试看 QAQ
Arnie97
2018-01-12 13:59:32 +08:00
1. 请将$LANG 或$LC_ALL 设置为 en_US.utf8 或 zh_CN.utf8。
2. 如果不存在上述的 locale,先用 locale-gen 生成。具体操作可以参考 https://help.ubuntu.com/community/Locale
3. 如果不考虑 Python 2 的兼容性,不必加 encoding 头部。Python 3 会忽略这行注释,强制要求 UTF-8 源码。

@est 楼主发帖时已经说了 Ubuntu ;并且 Windows 无法将代码页设置为 ASCII。

@xawsolevo 就是因为你这种人才会发生 /t/421212 这种情况😂
chengxiao
2018-01-12 14:14:52 +08:00
@Arnie97 多谢 我去尝试下 现在也是觉得问题出在系统环境这里
chengxiao
2018-01-12 14:31:28 +08:00
@Arnie97 非常感谢 问题解决了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/422301

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2017 V2EX