我正在尝试在Python 2中打印Unicode比特币符号if score1_list[intCount] > intH1:
intH1 = score1_list[intCount] and strHN1 = name_list[intCount]
if score2_list[intCount] > intH2:
intH2 = score2_list[intCount] and strHN2 = name_list[intCount]
if score3_list[intCount] > intH3:
intH3 = score3_list[intCount] and strHN3 = name_list[intCount]
if total_list[intCount] > intHT:
intHT = total_list[intCount] and strHNT = name_list[intCount]`
。我尝试添加\u2043
。
#-*- coding: utf-8 -*-
提高$ python2 -c 'print u'\u0243''
。但是,从Python shell执行此操作。
UnicodeEncodeError: 'ascii' codec can't encode character u'\u0243' in position 0: ordinal not in range(128)
为什么这段代码不起作用?
$ python2
>>> print u'\u0243'
Ƀ
答案 0 :(得分:1)
在Unix上,如果sys.stdout.isatty()
返回True
但sys.stdout.encoding
为'ANSI_X3.4-1968'
(ascii),那么您应该配置您的语言环境(检查LANG
,{{1 }},LC_CTYPE
envvars)如果需要打印非ascii字符,则使用非ascii编码。
如果LC_ALL
为false,则在脚本之外配置sys.stdout.isatty()
envvar
始终打印Unicode,不要在脚本中硬编码环境的字符编码。