zoukankan      html  css  js  c++  java
  • python字符编码

    一.字符编码

    发展历程

    1.ASCII码

    ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。

    每8个bit组成一个字节,这是计算机中最小的存储单位

    bit           位,计算机中最小的表示单位
    8bit = 1bytes 字节,最小的存储单位,1bytes缩写为1B
    1KB=1024B
    1MB=1024KB
    1GB=1024MB
    1TB=1024GB
    1PB=1024TB
    1EB=1024PB
    1ZB=1024EB
    1YB=1024ZB
    1BB=1024YB
    2.GBK和GB2312
    显然,对于我们来说能在计算机中显示中文字符是至关重要的,然而刚学习的ASCII表里连一个偏旁部首也没有。所以我们还需要一张关于中文和数字对应的关系表。

    3.Unicode
    为了避免各国都用不同的标准,防止乱码的出现Unicode出现了,它把所有语言都整合到一起去了,但是缺点就是它比ASCII编程多了一倍的储存空间(通常需要两个字节)

    4.UTF-8
    对于通篇都是英文的文本来说,这种编码方式无疑是多了一倍的存储空间(二进制最终都是以电或者磁的方式存储到存储介质中的)
    于是产生了UTF-8,对英文字符只用1Bytes表示,对中文字符用3Bytes

    总结:
    unicode:简单粗暴,通常字符都是2Bytes,优点是字符->数字的转换速度快,缺点是占用空间大
    utf-8:精准,对不同的字符用不同的长度表示,优点是节省空间,缺点是:字符->数字的转换速度慢,因为每次都需要计算出字符需要多长的Bytes才能够准确表示

    在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。
    用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件。

    关于字符编码的问题,很有点绕,这里有一个大佬写的一篇文章,通俗易懂,特此献上

     ##########编码回顾##########

     python2默认编码方式是ASCII不是UTF-8,需要在开头的地方写上#! -*- coding:  utf-8 -*-或者#! encoding:utf-8

     python3默认编码格式就是utf-8

  • 相关阅读:
    mongodb删除指定字段
    nodejs地理坐标转换
    浅谈对腾讯云微信小程序解决方案服务端的理解(主要针对信道服务)
    利用Django进行微信支付接口的开发
    SpringBoot常用注解
    构建一个敏感词字典树
    Java异常统一处理
    [一天一个小知识]instanceof
    [总结]实现表格中对checkbox的操作
    小程序的数据绑定
  • 原文地址:https://www.cnblogs.com/Xanderzyl/p/10235236.html
Copyright © 2011-2022 走看看