您正在寻找的ord()
功能,我认为:
>>> ord('a')
97
>>> ord('\u00c2')
192
这为您提供了Unicode代码点的整数。
要转换整个字符集,请使用列表推导:
>>> [ord(c) for c in 'Hello World!']
[72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]
它的倒数就是chr()
功能:
>>> chr(97)
'a'
>>> chr(193)
'Á'
请注意,在加密最终解密文本时, 通常会将 文本编码为带有字符编码 的二进制表示形式。Unicode文本可以使用具有不同优点和缺点的不同编码进行编码。这些天来,最普遍使用的Unicode文本UTF-8编码,但也有一些。
在Python 3中,二进制数据表示在bytes
对象中,您可以使用str.encode()
方法将文本编码为字节,然后使用进行返回bytes.decode()
:
>>> 'Hello World!'.encode('utf8')
b'Hello World!'
>>> b'Hello World!'.decode('utf8')
'Hello World!'
bytes
值实际上只是序列,如列表,元组和字符串,但由0-255之间的整数组成:
>>> list('Hello World!'.encode('utf8'))
[72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]
就个人而言,在加密时,您希望对结果字节进行编码和加密。
如果这一切似乎不堪重负或难以理解,那么有关Unicode和字符编码的这些文章可能会有所帮助: