这是我的代码:
print '??'.decode('gb2312').encode('utf-8')
...它打印:
SyntaxError: Non-ASCII character '\xe5' in file D:\zjm_code\a.py on line 2, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
我该如何打印'哈哈'?
更新: 当我使用以下代码时:
#!/usr/bin/python # -*- coding: utf-8 -*- print '??'
...打印???
.这不是我想要的.
我的IDE是Ulipad,这是IDE的错误吗?
第二次更新:
此代码将正确打印字符:
#!/usr/bin/python # -*- coding: utf-8 -*- print u'??'.encode('gb2312')
......当我用它时:
#!/usr/bin/python # -*- coding: utf-8 -*- a='??' print a.encode('gb2312') Traceback (most recent call last): File "D:\zjm_code\a.py", line 5, inprint a.encode('gb2312') UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 0: ordinal not in range(128)
...要么...
#!/usr/bin/python # -*- coding: utf-8 -*- a='??' print unicode(a).encode('gb2312') Traceback (most recent call last): File "D:\zjm_code\a.py", line 5, inprint unicode(a).encode('gb2312') UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 0: ordinal not in range(128)
......它不起作用.我该如何a
正确打印变量?
谢谢
你首先需要声明的编码,作为错误信息说得很清楚-它甚至会告诉你看看这里的细节!大概是你的编码gb2312
.
顺便说一下,它会更简单(使用相同的编码声明)
print u'??'.encode('utf-8')
encode
如果您sys.stdout
的encoding
属性设置正确(取决于您的终端,操作系统等),您可能甚至不需要该部件.