zoukankan      html  css  js  c++  java
  • python学习--字符编码问题

    计算机只能处理数字,处理文本要先把文本转换成二进制文件。8个二进制位为一个字节byte。00000000

    三种字符编码格式:

    1、ASCII编码:美国人发明,用一个字节表示所有的大小写英文字母及标点符号。

    2、Unicode编码:万国码,包含大部分国家的编码。通常是两个字节

    3、utf-8编码:(廖老师)如果统一成Unicode编码,乱码问题从此消失了。但是,如果你写的文本基本上全部是英文的话,用Unicode编码比ASCII编码需要多一倍的存储空间,在存储和传输上就十分不划算。所以,本着节约的精神,又出现了把Unicode编码转化为“可变长编码”的UTF-8编码。UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间。

    计算机内存中使用的是Unicode编码

    对单个字符,python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符

    print(ord('a'))   #97
    print(chr(97))   #a

    bytes类型的数据用带b的前缀表示 b'ABC' 表示三个字节

    encode()字符串通过encode可以编码为指定的字节 

    t1='你好'.encode('utf-8')
    print(t1)  # b'xe4xbdxa0xe5xa5xbd'

    decode()字节通过decode解码为字符串

    t2=b'xe4xbdxa0xe5xa5xbd'.decode('utf-8')
    print(t2) #你好

    len()方法,如果是字符就获取字符的长度,如果是字节就获取字节的长度

     

  • 相关阅读:
    二分排序之三行代码
    最短路径—Floyd算法
    最小生成树 Kruskal算法
    最小生成树-Prim算法
    最短路径之迪杰斯特拉(Dijkstra)算法
    C函数指针
    Linux进程的实际用户ID和有效用户ID
    C++ 之Boost 实用工具类及简单使用
    ELK之消息队列选择redis_kafka_rabbitmq
    Python文件操作
  • 原文地址:https://www.cnblogs.com/daacheng/p/7967191.html
Copyright © 2011-2022 走看看