如何使用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,但它仍然无法正常工作。

有什么好主意吗?谢谢。

+0

“我尝试解码,编码,统一,但它仍然无法工作。“请张贴您尝试的代码和您遇到的问题。您不会将UTF-8转换为Big-5。您将UTF-8解码为Unicode。然后你将Unicode编码成Big-5。请发布解码和编码您尝试和您与他们的问题。 – 2011-01-05 11:38:49

+0

感谢您的建议,我会注意到这一点。 – 2011-01-06 03:48:19

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')) 
單車 
+0

太棒了!这是我想要的答案。非常感谢你。 – 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') 
+0

加上'repr()'得到他想要的输出。 – marcog 2011-01-05 11:39:40