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

    定义

    编码是信息从一种形式或格式转换为另一种形式的过程。解码,是编码的逆过程

    字符编码(Character encoding)是一套法则,使用该法则能够对自然语言的字符的一个集合(如字母表或音节表),与其他东西的一个集合(如号码或电脉冲)进行配对
    计算机因为物理特性,只能识别高低压,即:“010100” 这样的二进制;为了识别人类的自然语言,美国人于1963年开发了一套Ascii码。这是最开始的字符编码。
    计算机传入中国后,中国人在Ascii基础上,往后开发了GB2312,但是字数只有六千多。后来,为了发展需要,又制作了GBK标准。
    国际标准化组织为了统一编码,提出了标准编码准则:UNicode;但是由于unicode占用的空间较大,又在这基础上进行改善,制作了UTF-8(8-bit Unicode Transformation Format),它是一种针对Unicode的可变长度字符编码,可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度,当字符在ASCII码的范围时,就用一个字节表示,所以是兼容ASCII编码的。
    Unicode是内存编码表示方案(是规范),而UTF是如何保存和传输Unicode的方案(是实现)这也是UTF与Unicode的区别。

    unicode:英文字符占2字节,中文占2字节
    utf-8:英文字符占1字节,中文占3字节
    GB2312:英文字符占1字节,中文占2字节

    python2和python3
    py2有两种字符串类型:
    str类型:bytes(二进制)形式存储在内存
    unicode类型:unicode(二进制)形式存储在内存中

    s1 = “北京” bytes类型
    s2 = u“北京” unicode类型
    repr()

    p2默认为ascii码解码

    py3也有两种字符串类型:
    str类型:以unicode形式(一种二进制)存储在内存中
    bytes类型:bytes形式(一种二进制)存储在内存中
    s1 = "上海" uncide形式储存
    s2 = b“上海” bytes形式储存,只能识别ascii码,这个print(s2)会报错 bytes can only contain ASCII literal characters.


    p3默认为utf-8码解码

    win的操作系统安装时是默认的gbk编码,而linux操作系统默认的是utf8编码

  • 相关阅读:
    idea 从svn导入项目遇到的错误
    用sql语句处理字符串以逗号截开分别获取值
    tree grid 实现编辑保存然后整体存入数据库
    EasyUI的TreeGrid的json格式,树状图显示问题
    vue.js--菜鸟级入门
    Django3.0知识笔记——WSGI&ASGI是什么?
    open stack
    shell脚本简介及常用文本编辑命令
    shell脚本之变量与运算符
    shell编程之流程控制(for、while、case、break、continue)
  • 原文地址:https://www.cnblogs.com/greatkyle/p/6661867.html
Copyright © 2011-2022 走看看