在Python中将UTF-8字节转换为其他一些编码

lol*_*llo 2 python unicode encoding

我需要在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'
Run Code Online (Sandbox Code Playgroud)

YOU*_*YOU 9

>>> x.decode('utf8').encode('iso-8859-2')
'Sk\xb3odowski'
Run Code Online (Sandbox Code Playgroud)