• 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编码

  • 相关阅读:
    Hexo 与 Git 集成
    Hexo Next 调优
    【翻译】Django Channels 官方文档 -- Tutorial
    配置环境是程序员的第一步 -- Xshell 6 免费版下载安装
    一步一步理解 python web 框架,才不会从入门到放弃 -- 简单登录页面
    配置环境是程序员的第一步 -- Windows 10 下 MySQL 安装
    一步一步理解 python web 框架,才不会从入门到放弃 -- 开始使用 Django
    一步一步理解 python web 框架,才不会从入门到放弃 -- 启程出发
    生成器
    迭代器
  • 原文地址:https://www.cnblogs.com/greatkyle/p/6661867.html
Copyright © 2020-2023  润新知