[英]Can't print Unicode Bitcoin symbol in Python 2
我正在尝试在 Python 2 中打印 Unicode 比特币符号\⁃
。我尝试添加#-*- coding: utf-8 -*-
。
$ python2 -c 'print u'\u0243''
引发UnicodeEncodeError: 'ascii' codec can't encode character u'\Ƀ' in position 0: ordinal not in range(128)
。 但是,从 Python shell 执行此操作是可行的。
$ python2
>>> print u'\u0243'
Ƀ
为什么这段代码不起作用?
bitcoin = u'\u0243'
quote = u'{:,.2f}'.format(float(val), '.2f')
print bitcoin, quote
在 Unix 上,如果sys.stdout.isatty()
返回True
但sys.stdout.encoding
是'ANSI_X3.4-1968'
(ascii) 那么你应该配置你的语言环境(检查LANG
、 LC_CTYPE
、 LC_ALL
envvars)以使用非 ascii如果您需要打印非 ASCII 字符,请进行编码。
如果sys.stdout.isatty()
为 false,则在脚本外配置PYTHONIOENCODING
envvar。
始终打印 Unicode,不要在脚本中硬编码环境的字符编码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.