2010-03-24 32 views
2

其他一些编码,我需要在Python 2.4(是的,2.4 :-()做。转换UTF-8字节在Python

我有一个简单的字符串对象,它代表与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' 

回答

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