• python3之编码浅析


    编码,首先对计算机来说,他的基层只能识别0,1二进制信息,字节是计算机的最小处理单元,一字节占用8位,也就是说在计算机中最小可以处理 8 位的二进制数。同时,在计算机上存储的数据也是以字节为单位的信息,在读取计算机上的信息时就是读取的二进制的这些0、1组成的数字信息。

    所以为了能让计算机识别更多的数据,就出现了Ascii、UTF-8、GBK以及Unicode 等编码类型的标准码来翻译成计算机能识别的二进制数。
    接下来来了解一下这些编码:

    • ASCAII码:
      ASCII码 表示127个英文字符 每个中文需要使用两个字节来编码,中文编码的规则 —— GB2312 由于不同国家有不同的编码规则,如日本,韩国都使用各自国家的 编码规则,在多语言混用的场合会出现混乱。

    • UTF-8码:
      UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字 节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生 僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文 字符,用UTF-8编码就能节省空间。 UTF-8的一个好处在于,原有的ASCII的编码可以在UTF-8下继续工 作。

    • GBK码:
      GBK编码,是对GB2312编码的扩展,因此完全兼容GB2312-80标准。GBK编码依然采用双字节编码方案,其编码范围:8140-FEFE,剔除xx7F码位,共23940个码位。共收录汉字和图形符号21886个,其中汉字(包括部首和构件)21003个,图形符号883个。GBK编码支持国际标准ISO/IEC10646-1和国家标准GB13000-1中的全部中日韩汉字,并包含了BIG5编码中的所有汉字。GBK编码方案于1995年12月15日正式发布,这一版的GBK规范为1.0版。

    • Unicode码 :
      Unicode 用来把所有语言都统一到一套编码里,这样就不会再有乱 码问题了。Unicode 通常用两个字节编码(有的也用四个字节),而 ASCII码通常用一个字节字节。ASCII码转换成Unicode在前面一个字节 补0

    所以在进行文件操作的时候要涉及编码还有解码,在python3中用**encode()来编码,用decode()**来解码。
    编码(encode):将Unicode字符串(中的代码点)转换特定字符编码对应的字节串的过程和规则

    解码(decode):将特定字符编码的字节串转换为对应的Unicode字符串(中的代码点)的过程和规则

    通过了解,编码过程为:

    人类的字符 ===> 翻译 ===> 数字(数字说的就是计算机能读懂的语言)
    我们要保证不乱吗的核心法则就是,文件是以什么标准编码的,就以什么格式读取。

    所以之前遇到很多次tomcat配置啊,数据库配置啊,都有编码问题而出现控制台乱码问题,问题出在编码问题上,需要更改配置。

    接下来看看pycharm中使用python3的文件操作:
    新建一个文件
    在这里插入图片描述
    在这里插入图片描述
    默认编码格式是utf-8:
    在这里插入图片描述
    打开文件:
    f = open(r'B:pythonAfly_1lianxia','r').read() print(f)

    以gbk编码打开
    在这里插入图片描述
    运行报错
    在这里插入图片描述
    改为utf-8
    在这里插入图片描述
    正常运行
    在这里插入图片描述

    爱,就是你和某个人一起经历的一切。
  • 相关阅读:
    Visual Studio 2005 Starter Kits
    怎样去做才是朋友?
    C#读写日志文本文件
    [文摘20080707]马云追加投资20亿 淘宝首定10年超沃尔玛目标
    [转]在WinForm应用程序中实现自动升级
    [转]官方Flash CS3简体中文帮助文档下载,AS3.0简体中文帮助文档下载
    [引]MySQL INNODB类型表的外键关联设置
    [转]winfrom让弹出的MessageBox在指定时间内自动销毁
    生活开心一笑 之 "我家半"与"QQ病毒"
    [English20080721]疯狂英语365句
  • 原文地址:https://www.cnblogs.com/afly-8/p/13561141.html
Copyright © 2020-2023  润新知