zoukankan      html  css  js  c++  java
  • python 字符的花儿

    字符(串)str

    • python3 运行中(内存中)使用unicode编码(以支持多国语言),即:十六进制编码unicode与字符串str等价
    >>> 'u4e2du6587'
    '中文'
    
    • ord()函数可以获取字符的整数表示
    • chr()函数把编码转换成字符
    >>> ord('A')
    65
    >>> ord('中')
    20013
    >>> chr(66)
    'B'
    >>> chr(25991)
    '文'
    

    字节类型bytes

    • str为unicode,存盘或网上传输需要把str变为字节为单位的bytes,如下表示:
    >>>x ='ABC'
    >>>y = b'ABC'
    #前者是str,后者虽然内容显示得和前者一样,但bytes的每个(任何)字符都只占用一个字节。
    #x中可以有中文,y中不能有中文。中文字符串编码有歧义,编码成byte(虽不能显示),但规范,无歧义(更标准)
    >>>"你好".encode("utf")
    b'xe4xbdxa0xe5xa5xbd'
    #这是字符串编码变为byte类型的最常用编码方式。
    
    • 廖老师编码篇

    https://www.liaoxuefeng.com/wiki/1016959663602400/1017075323632896

    • 字符串函数大权

    https://www.cnblogs.com/zhangjunkang/p/9381838.html

    花儿base64

    Base64编码是一种“防君子不防小人”的编码方式。广泛应用于MIME协议,作为电子邮件的传输编码,生成的编码可逆,后一两位可能有“=”,生成的编码都是ascii字符。迅雷、flashget下载链接是基于base64加花的。
    优点:速度快,ascii字符,肉眼不可理解
    缺点:编码比较长,非常容易被破解,仅适用于加密非关键信息的场合

    #安装base64
    >>> import base64
    >>> s="00000000"
    >>> print(s.encode("utf"))
    b'00000000'
    >>> base64.b64encode(s.encode("utf"))
    b'MDAwMDAwMDA='
    # 加密之前要输入byte类型。而python3中的字符串是unicode类型,所以需要转码(python2中str是byte,无须转码)
    # 输出也是byte类型。立刻解密是方便的。但,还我的字符串:
    >>> print(str(b'MDAwMDAwMDA=',"utf"))
    '00000000'
    # 字符串来了
    
  • 相关阅读:
    Unity之串口通信(基于三姿态传感器)
    Unity3d win7协议多点触控
    大大的蛋项目 第二篇 第三关
    大大的蛋项目
    Unity3d 调用C++的DLL
    有梦想的小鸟
    【Unity3D插件】NGUI屏幕自适应 .
    【Unity3d】使GUI适应屏幕分辨率
    unity自动保存项目
    BloomFilter——大规模数据处理利器
  • 原文地址:https://www.cnblogs.com/scientist/p/12143620.html
Copyright © 2011-2022 走看看