美文网首页
Python字符串和编码(三)

Python字符串和编码(三)

作者: chensiyu2014 | 来源:发表于2016-08-17 20:25 被阅读0次

    字符编码


    1. 计算机由于是美国人发明,因此只有127个字母编码到计算机里,也就是大小写英文字母、数字和一些符号。该表又称为ASCII编码
    2. 中国制定了GB2312编码来进行中文的编进
    3. 由于各个国家的编码复杂性,Unicode应运而生,Unicode将所有的语言都统一到一套编码里面,这样就不会在有乱码出现。
    4. ASCII编码和Unicode编码的区别是:ASCII编码是1个字节,而Unicode是通常是2个字节。
    5. 尽管Unicode将编码统一了,乱码问题消失了,但是如果基本都是英文的话,用Unicode编码要比ASCII编码多一倍的存储空间,在存储和传输上是否不划算;因此又出现了降Unicode编码转化为“可变成编码”UTF-8编码。UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码为1个字节,汉字通常是3个字节,只有很生僻的才编码为4-6个字节。
    6. 现在计算机系统通用的字符编码工作:在计算机内存中统一使用Unicode,而需要保存到硬盘或者传输的时候,就转换为UTF-8编码;
    7. 关系例子
    字符 ASCII Unicode UTF-8
    A 0100000 000000001000001 01000001
    x 01001110 00101101 11100100 10111000 10101101

    Python字符串


    1. 在最新的Python3版本中,字符串是以Unicode编码的,因此Python支持多种语言
    2. 对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符
    3. Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节,如果要传输或者保存,需要将str转换为字节为单位bytes;对于bytes类型数据用带b前缀的单引号或双印好表示
    4. Pyhont提供encodedecodel两种方式进行字符编码的转换
    5. len()函数计算str是字符数,计算bytes则为字节数
    6. 为了避免乱码问题,应当时钟坚持使用UTF-8编码对str和bytes转换

    格式化


    1. Python的格式化方式和C语言保持一致用%实现
    2. 字符串里面的%是一个普通的字符则需要转移用%%来表示%

    总结


    牢记采用UTF-8来编码,乱码将不再是问题,了解了ASCII、Unicode以及UTF-8的历史不错

    相关文章

      网友评论

          本文标题:Python字符串和编码(三)

          本文链接:https://www.haomeiwen.com/subject/aeomsttx.html