我有以下内容:
blocky = u'\u2588'
print blocky
当我在命令行中运行它时,一切都很好:
# python foo.py
█
然后我运行pyinstaller foo.py
。没有错误。当我运行可执行文件时,出现此错误:
# ./foo
Traceback (most recent call last):
File "testall.py", line 2, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2588' in position 0: ordinal not in range(128)
[8029] Failed to execute script testall
我已经阅读了python unicode的使用方法,但仍然很困惑。
编辑:为澄清起见,我对为什么在之前而不是之后
编译的原因感到困惑答案 0 :(得分:0)
好的,所以我找到了答案。众所周知,python对编码感到困惑,喜欢默认为ascii。我相信添加初始u
是如何显式声明编码的方式,但我想不是吗?无论如何,将其修改为
blocky = u'\u2588'
print blocky.encode("utf-8")
解决了。