我使用Python 2.6.6
我的语言环境是('en_US','UTF8')

我尝试了多种方法将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对象str_a中的Unicode代码点序列进行比较:

In [24]: list(str_a)
Out[24]: [u'\u55ae', u'\u8eca']


要将格式不正确的字符串str_b转换为使用unicode-escape进行Unicode解码,请执行以下操作:

In [20]: str_b.decode('unicode-escape')
Out[20]: u'\u55ae\u8eca'

In [21]: print(str_b.decode('unicode-escape'))
單車

10-07 19:12
查看更多