Это мой код:
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, in <module>
print 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, in <module>
print unicode(a).encode('gb2312')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 0: ordinal not in range(128)
... это не работает. Как я могу напечатать переменную a
соответствующим образом?
спасибо