Python3将Unicode字符串转换为int表示形式

发布于 2021-01-29 17:15:07

众所周知,计算机可以处理数字。我现在正在输入此文本,服务器从中输入一个数字,当您要阅读该文本时,将从服务器中获取文本。

我怎么能自己做?

我想用自己的算法加密某些东西,而我的算法可以很好地处理整数,但是现在我想加密一个字符串,而且我不知道如何将Unicode字符串转换为整数,反之亦然。

我正在使用Python3。有人知道我的问题的解决方案吗?

关注者
0
被浏览
138
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您正在寻找的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和字符编码的这些文章可能会有所帮助:



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看