如何使用python将utf-8字符串转换为big5?
我使用Python 2.6.6 我的语言环境是(“EN_US”,“utf-8”)如何使用python将utf-8字符串转换为big5?
我尝试了很多方式为UTF-8字符串转换为BIG5,但它不能正常工作。 如果你知道如何做到这一点,请给我一些建议,非常感谢。
一个中国词叫 '单车',它的意思是 '自行车'
它的unicode是\ u55ae \ u8eca
str_a = u'\u55ae\u8eca'
str_b = '\u55ae\u8eca'
print str_a # output '單車'
print str_b # output '\u55ae\u8eca'
我知道str_a可以工作,但我想将str_b转换为big5也是如此。
我尝试解码,编码,unicode,但它仍然无法正常工作。
有什么好主意吗?谢谢。
str_b
是一个字节序列:
In [19]: list(str_b)
Out[19]: ['\\', 'u', '5', '5', 'a', 'e', '\\', 'u', '8', 'e', 'c', 'a']
反斜线和u
等等一切都只是单独的字符。与此相比,中Unicode代码点序列中的Unicode对象str_a
:
In [24]: list(str_a)
Out[24]: [u'\u55ae', u'\u8eca']
到恶意形成的字符串str_b
转换为Unicode解码与unicode-escape
:
In [20]: str_b.decode('unicode-escape')
Out[20]: u'\u55ae\u8eca'
In [21]: print(str_b.decode('unicode-escape'))
單車
太棒了!这是我想要的答案。非常感谢你。 – 2011-01-06 03:08:09
你应该能够做到这一点:
str_a = u'\u55ae\u8eca'
str_b = str_a.encode('big5')
print str_a
print str_b.decode('big5')
加上'repr()'得到他想要的输出。 – marcog 2011-01-05 11:39:40
“我尝试解码,编码,统一,但它仍然无法工作。“请张贴您尝试的代码和您遇到的问题。您不会将UTF-8转换为Big-5。您将UTF-8解码为Unicode。然后你将Unicode编码成Big-5。请发布解码和编码您尝试和您与他们的问题。 – 2011-01-05 11:38:49
感谢您的建议,我会注意到这一点。 – 2011-01-06 03:48:19