как распечатать китайское слово в моем коде.. использование Python

Это - мой код:

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 соответственно?

спасибо

12
задан Makoto 5 May 2012 в 03:00
поделиться

3 ответа

Сначала вам нужно объявить кодировку, поскольку сообщения об ошибках так ясно говорят - вам даже предлагается посмотреть подробности здесь ! Ваша кодировка предположительно gb2312 .

Кстати, было бы проще (с тем же объявлением кодировки) сделать

print u'哈哈'.encode('utf-8')

, и вам может даже не понадобиться часть encode , если ваш sys.stdout имеет Атрибут кодировка установлен правильно (зависит от вашего терминала, ОС и т. Д.).

11
ответ дан 2 December 2019 в 18:18
поделиться

Вам необходимо указать кодировку файла исходного кода python, вот кодировка для utf-8. Он идет вверху справа под путем к интерпретатору Python.

#!/usr/bin/python
# -*- coding: utf-8 -*-

Если вы перейдете по URL-адресу в сообщении об ошибке , вы сможете найти дополнительную информацию об указании кодировки исходного файла python.

После того, как вы укажете кодировку исходного файла, вам не придется декодировать текст.

4
ответ дан 2 December 2019 в 18:18
поделиться

У меня работает следующий код:

# coding: utf8
print u'哈哈'.encode('utf-8')

Комментарий #coding сообщает Python кодировку самого файла, поэтому вы можете напрямую вставлять в него символы UTF-8. И если вы начнете со строки Unicode, нет необходимости ее декодировать и перекодировать.

2
ответ дан 2 December 2019 в 18:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: