这是我的代码:
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
如何打印“哈哈”?
Update:当我使用以下代码时:
#!/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, in <module>
print a.encode('gb2312')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 0: ordinal not in range(128)
...or...
#!/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, in <module>
print unicode(a).encode('gb2312')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 0: ordinal not in range(128)
...这不起作用。我将如何打印变量a
适当吗?
thanks
您首先需要声明一个编码,正如错误消息所说的那样——它甚至告诉您查看here http://www.python.org/peps/pep-0263.html了解详情!你的编码大概是gb2312
.
顺便说一句,这样做会更简单(使用相同的编码声明)
print u'哈哈'.encode('utf-8')
你甚至可能不需要encode
部分,如果你的sys.stdout
has an encoding
正确设置属性(取决于您的终端、操作系统等)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)