我试图在python2中打印Unicode比特币符号\u2043
。我尝试添加#-*- coding: utf-8 -*-
。在
$ python2 -c 'print u'\u0243''
引发UnicodeEncodeError: 'ascii' codec can't encode character u'\u0243' in position 0: ordinal not in range(128)
。但是,从pythonshell中执行此操作是可行的。在
为什么这个代码不起作用?在
bitcoin = u'\u0243'
quote = u'{:,.2f}'.format(float(val), '.2f')
print bitcoin, quote
在Unix上,如果}(ascii),那么如果需要打印非ascii字符,则应该配置您的语言环境(选中
sys.stdout.isatty()
返回True
,但是sys.stdout.encoding
是{LANG
,LC_CTYPE
,LC_ALL
环境变量)以使用非ascii编码。在如果
sys.stdout.isatty()
为false,则在脚本外部配置PYTHONIOENCODING
envvar。始终打印Unicode,不要在脚本中硬编码环境的字符编码。在
相关问题 更多 >
编程相关推荐