zoukankan      html  css  js  c++  java
  • 字符编码(待补充)

    明文:消息以人类能读懂的方式存在

    编码:从明文到编码文本的转换

    解码:从编码文本到明文的转换

    计算机中的所有数据,本质上都是按照类似10101001来存放的二进制存储的

    说的简单点,计算机只认识二进制数字

    ASCLL码

    通过一个电平的高低状态来代指0或1

    一个bytes表示一个字符,1bytes=8bit,8bit可以表示256个字符

    GB2312

    是对ASCLL的中文扩展

    GBK

    两个bytes表示一个字符

    UNICODE

    国际标准化组织统一编码:Unicode(万国码)

    Unicode是用两个字节来表示为一个字符

    UTF8

    是一种针对Unicode的可变长度字符编码,它可以用1-4个字节表示一个符号,当字符在ascll码的范围时,就用一个字节表示

    中文用3个字节表示

    py2的string编码

    py2有两种字符串类型:str和Unicode,str就是编码后的结果bytes,Unicode还是Unicode

    py3的string编码

    py3也有两种数据类型:str和bytes,str类型存Unicode数据,bytes类型存bytes数据

     Unicode和utf8的优缺点

    unicode:简单粗暴,所有字符都是2Bytes,优点是字符->数字的转换速度快,缺点是占用空间大

    utf-8:精准,对不同的字符用不同的长度表示,优点是节省空间,缺点是:字符->数字的转换速度慢,因为每次都需要计算出字符需要多长的Bytes才能够准确表示

    在内存中的数据都是Unicode,但数据保存到硬盘或用于网络传输时要用utf8

    从内存保存文件到硬盘:encode(编码)

    从硬盘读取文件到内存:decode(解码)(#coding:utf8)

    在Python2中默认编码方式为 ASCII 
    在python3中默认的编码方式为utf-8

    读文件时发生乱码是可以解决的,选对正确解码方式就可以了,存文件时乱码则是一种数据的损坏

    核心法则就是,文件以什么编码保存的,就以什么编码方式打开

  • 相关阅读:
    HTML浏览器标题栏如何设置
    阿里团队常用的布局——双飞翼布局
    浏览器兼容性问题——IE不支持却很实用的CSS属性Outline和Child
    css选择器:基本选择器
    编程十年
    解决WX-IOS打开公众号网页出现的底部导航条
    Angular6路由复用与延迟加载的冲突解决——看看有备无患
    Ionic2 + Angular4 + JSSDK开发中的若干问题汇总
    [Linq Expression]练习自己写绑定
    [Linq To Sql]解决join时的Collation冲突
  • 原文地址:https://www.cnblogs.com/z-x-y/p/7148488.html
Copyright © 2011-2022 走看看