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

    1 字符编码
    将人类的字符编码/转换成计算机能识别的数字
    这种转换必须遵循一套固定的标准,该标准无非是
    人类字符与数字的对应关系,称之为字符编码表


    00
    01
    10
    11


    A---->0000 0000
    B---->0000 0001
    c---->0000 0002
    d---->0000 0003

    bit:二进制位
    Bytes:字节

    ASCII码表:用1Bytes表示一个英文字符
    1英文字符=8bit=1Bytes


    GBK:用2Bytes表示一个中文字符,1Bytes去表示英文字符

    unicode:内存中使用的是unicode编码,unicode把全世界的字符都建立好对应关系
    用2Bytes去表示一个字符


    0000 0000 0000 0000

    utf-8 #unicode tranform format-8
    utf-8 用1Bytes表示英文,用3Bytes表示中文


    字符编码需要记住的概念
    01 内存中固定使用unicode编码,我们唯一可以改变的存储到硬盘时使用的编码
    02 要想保证存取文件不乱乱码,应该保证文档当初是以什么编码格式存的,就应该以什么编码格式去读取

    03 python3解释器默认编码是UTF-8
    python2解释器默认编码是ASCII


    在python2中有两种字符串编码格式
    1、unicode:
    x=u'上'
    2、unicode编码后的结果
    x='上' #如果文件头为coding:utf-8,那么"上"被存成utf-8格式的二进制

    在python3只有一种字符串编码格式:
    1、unicode
    x='上’

    04 编码与解码
    unicode-------编码encode-------->gbk
    unicode<-------解码decode--------gbk


    coding:gbk
    x='上’
    x.decode('gbk')

    coding:gbk
    x=u'上'
    x.encode('gbk')
    x.encode('utf-8')


    在python3中(*****)
    x='上'
    x只能进行编码
    x.encode('gbk')

    总结python2与python3:

    在python2中的字符粗类型str都是unicode按照文件头的指定的编码,编码之后的结果
    在python2中也可以制造unicode编码的字符串。需要在字符串前加u


    在python3中的字符串类型str都是unicode编码的
    所以python3中的字符串类型可以编码成其他字符编码格式,编码的结果
    是bytes类型

  • 相关阅读:
    OSPF 开放最短路径优先协议
    RIP 路由算法
    原创 记一个上门洗车服务范围的需求实现
    转载 一位资深程序员大牛给予Java学习者的学习路线建议
    原创 解决异步调用实时跳转
    FIFO队列 ADT接口 数组实现
    FIFO队列 ADT接口 链表实现
    约瑟夫问题 链表实现
    合并-查找接口实现
    快速查找 快速合并 加权快速合并 路径等分加权快速合并 算法
  • 原文地址:https://www.cnblogs.com/wanglecn/p/9142210.html
Copyright © 2011-2022 走看看