如何用Python将utf-8字符串转换为big5?

1 投票
2 回答
11076 浏览
提问于 2025-04-16 09:26

我使用的是 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 编码。

我试过 decode、encode 和 unicode,但还是不行。

有没有什么好主意?谢谢。

2 个回答

3

你应该可以这样做:

str_a = u'\u55ae\u8eca'
str_b = str_a.encode('big5')
print str_a
print str_b.decode('big5')
5

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,可以使用 unicode-escape 进行解码:

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

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

撰写回答