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

时间:2010-03-24 16:43:23

标签: 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'

1 个答案:

答案 0 :(得分:9)

>>> x.decode('utf8').encode('iso-8859-2')
'Sk\xb3odowski'