Работа с кодировкой UTF-8 в исходном коде Python

Рассматривать:

$ cat bla.py 
u = unicode('d…')
s = u.encode('utf-8')
print s
$ python bla.py 
  File "bla.py", line 1
SyntaxError: Non-ASCII character '\xe2' in file bla.py on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

Как я могу объявить строки UTF-8 в исходном коде?

+389
09 июн. '11 в 7:29
источник поделиться
2 ответа

В заголовке исходного кода вы можете объявить:

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

Это описано в PEP 0263:

Тогда вы можете использовать UTF-8 в строках:

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

u = 'idzie wąż wąską dróżką'
uu = u.decode('utf8')
s = uu.encode('cp1250')
print(s)

Это объявление не требуется в Python 3, поскольку UTF-8 является исходной кодировкой по умолчанию (см. PEP 3120).

Кроме того, возможно, стоит проверить, что ваш текстовый редактор правильно кодирует ваш код в UTF-8. В противном случае у вас могут быть невидимые символы, которые не интерпретируются как UTF-8.

+756
09 июн. '11 в 7:31
источник

Связанные вопросы


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

Не забудьте проверить, правильно ли кодирует ваш текстовый редактор код в UTF-8.

В противном случае у вас могут быть невидимые символы, которые не интерпретируются как UTF-8.

+86
18 февр. '14 в 10:41
источник

Посмотрите другие вопросы по меткам или Задайте вопрос