我需要在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'
答案 0 :(得分:9)
>>> x.decode('utf8').encode('iso-8859-2')
'Sk\xb3odowski'