Еще раз про кодировки
Обычный русский текст перекодируется нормально, но при наличии всяких других символов постоянно получаю результат типа:
'charmap' codec can't encode character u'\xf3' in position 31: character maps to…
Чтобы с этим бороться написал себе функцию типа:
table = (
(u'\u0103', u“a”), #LATIN SMALL LETTER A WITH BREVE
(u'\u0131', u“i”), #LATIN SMALL LETTER DOTLESS I
…
(u'\xc0', u“A”), #LATIN CAPITAL LETTER A WITH GRAVE
(u'\xc1', u“A”), #LATIN CAPITAL LETTER A WITH ACUTE
(u'\xc4', u“A”), #LATIN CAPITAL LETTER A WITH DIAERESIS
(u'\xc9', u“E”), #LATIN CAPITAL LETTER E WITH ACUTE
…
(u'\xf3', u“o”), #LATIN SMALL LETTER O WITH ACUTE
(u'\xf6', u“o”), #LATIN SMALL LETTER O WITH DIAERESIS
(u'\xfa', u“u”), #LATIN SMALL LETTER U WITH ACUTE
(u'\xfc', u“u”), #LATIN SMALL LETTER U WITH DIAERESIS
)
for symb_in, symb_out in table:
s = s.replace(symb_in, symb_out)
return s
Вызываю ее перед перекодировкой и изредка добавляю что-нибудь в таблицу.
Но мне кажется, что это как-то не правильно…