Конвертировать байты UTF-8 в другую кодировку в Python - PullRequest
2 голосов
/ 24 марта 2010

Мне нужно сделать в Python 2.4 (да, 2.4 :-().

У меня есть объект простой строки, представляющий некоторый текст, закодированный с помощью UTF-8. Он поступает из внешней библиотеки, которую нельзя изменить.

Итак, я думаю, мне нужно создать объект Unicode, используя байты из этого исходного объекта, а затем преобразовать его в какую-то другую кодировку (фактически iso-8859-2).

Объект простой строки - «x». "Unicode ()", кажется, не работает:

>>> x
'Sk\xc5\x82odowski'
>>> str(unicode(x, encoding='iso-8859-2'))
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
UnicodeEncodeError: 'ascii' codec can't encode characters in position 2-3: ordinal not in range(128)
>>> unicode(x, encoding='iso-8859-2')
u'Sk\u0139\x82odowski'

1 Ответ

9 голосов
/ 24 марта 2010
>>> x.decode('utf8').encode('iso-8859-2')
'Sk\xb3odowski'
...