python: работа с немецким умляутом

months = ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"]

print months[2].decode("utf-8")

Месяц печати [2] завершается с ошибкой

UnicodeDecodeError: 'utf8' codec can't decode bytes in position 1-2: invalid data

помогите избавиться от этого!


person deimus    schedule 31.08.2011    source источник
comment
отлично работает в моем интерпретаторе python2. Скорее всего, ошибка кодирования файла, вы добавили # -*- coding: utf-8 -*- в начало файла?   -  person naeg    schedule 31.08.2011


Ответы (2)


Вы добавили кодировку в начало исходного файла?

# -*- coding: utf-8 -*-
person Cédric Julien    schedule 31.08.2011

Вы уверены, что работаете в UTF8?

Тем не менее, я бы рекомендовал определить

months = [u"Januar", u"Februar", u"März", u"April", u"Mai", u"Juni",
          u"Juli", u"August", u"September", u"Oktober", u"November", u"Dezember"]

print months[2]

и если вы делаете что-то на основе байтов, вы encode() данные в кодировку, которая вам нужна.

person glglgl    schedule 31.08.2011