Python将代码页字符数转换为Unicode

时间:2018-11-04 23:28:23

标签: python unicode character-encoding codepages

默认情况下,print(chr(195))在位置195(“Ô)上显示Unicode字符 如何打印出现在code page 1251中的chr(195),即“Г” 我试过了:print(chr(195).decode('cp1252'))和各种.encode方法。

3 个答案:

答案 0 :(得分:2)

由于您无法在字符串中存储“原始”值0xC3(如果这样做了,则不应该拥有–原始二进制“未解析”数据应为字节数组):从转换的正确方法原始的 byte 数组确实是.decode('cp1251')

>>> print (b'\xc3'.decode('cp1251'))
Г

但是,如果您已经将其保存在字符串中,那么最简单的方法是首先使用一对一的“编码” Latin-1将字符串从字符串转换为bytes对象:

str = 'Ãamma'
print (bytes(str.encode('latin1')).decode('cp1251'))
>>> Гamma

答案 1 :(得分:2)

在Python 3中,chr(n)返回一个只能编码的Unicode字符串。使用bytes创建可以解码的字节字符串:

>>> bytes([195])
b'\xc3'
>>> bytes([195]).decode('cp1251')
'Г'
>>> bytes([195,196,197])
b'\xc3\xc4\xc5'
>>> bytes([195,196,197]).decode('cp1251')
'ГДЕ'

答案 2 :(得分:1)

您可以使用urllib

print urllib.quote_plus(str.encode('cp1251'))

还请记住,如果使用的是国际字符串,请确保在要解析的字符串中包含u前缀。

str = u"whateverhere"

已更改为删除downvote?