Я пытаюсь запустить следующий простой код в NetBeans 6.9

s = u"\u00B0 Celsius"
print u"{0}".format(s)

Но я получаю следующую ошибку:

UnicodeEncodeError: 'ascii' codec can't encode character u'\xb0' in position 0: ordinal not in range(128)
0
Kit 12 Авг 2010 в 12:36

2 ответа

Лучший ответ

Консоль NetBeans явно не настроена должным образом для обработки печати строк Unicode, отличных от ASCII.

В общем, вам следует избегать печати строк Unicode без их явного кодирования (например, u_str.encode(some_codec).

В вашем конкретном случае вам, вероятно, просто сойдет с рук:

print u'{0}'.format(s).encode('utf-8')
4
habnabit 12 Авг 2010 в 09:02

У вас есть строка Unicode, которую вы хотите закодировать. Предполагая, что вы хотите использовать кодировку UTF-8:

S.encode ('utf-8')

0
John P 12 Авг 2010 в 08:57