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

    储备知识点:

      1、计算系统可以分为三层:

        应用程序层

        操作系统

        计算硬件

      2、运行Python程序的三个步骤:

        1.先启动Python解释器

        2.再将Python文件当做普通的文本文件读入内存

        3.解释执行读入内存的代码,开始识别语法。

    字符编码

    1、什么是字符编码?

      字符编码表,将是人类使用的字符与数字一一对应,方便计算的处理与认识。

      1Bytes = 8bit  一个字节等于8个二进制位

      字符编码表的发展 

      ASCII码:只能识别英文字符,1英文字符=8bit
      用8个二进制bit(比特位)位表示一个英文字符


      GBK:能识别汉字与英文,1汉字=16bit,1英文字符=8bit
      Shift_JIS
      Euc-kr

      unicode:能够识别万国字符,1字符=2Bytes=16bit
      两大特点:
        1. 能够兼容万国字符
        2. 与各个国家的字符编码都有映射关系
        utf-8:是unicode的转换格式,1个英文字符=1Bytes 1汉字=3Bytes

    重点:

      1、编码和解码的概念:

        字符(输入的内容)----编码----》Unicode的二进制(内存中状态)------编码----》gbk的二进制(硬盘中存储的状态)

        gbk的二进制(硬盘中存储的状态)-----解码-----》Unicode的二进制(内存的状态)------解码----》字符(输出的内容)

      2、解决乱码的核心方法

        字符用什么编码格式编码的,就应该用什么编码格式进行解码。上面两条编码和解码都相同。

        结论在,需要在py文件,文件头定义好。#coding:需要的使用的字符编码。

      3、python解释器默认的字符编码
        python2:ASCII
        python3:UTF-8

      文件头设定在Python解释器中的作用

        通过文件头可以修改python解释器默认使用的字符编码在文件首行写:#coding:文件当初存的时候用的字符编码

        针对python2解释器中定义字符串应该:x=u"上"

        对于python3解释即便是x="上"不加u前缀也是存成unicode

        在python3中

        x='上' # '上'内存中存成了uncidoe

        

        unicode--------encode----------->gbk
        res=x.encode('gbk') #res是gbk格式的二进制,称之为bytes类型

        gbk(bytes类型)-------decode---------->unicode
        y=res.decode('gbk') #y就是unicode

    需要掌握字符编码的操作::

      1. 编写python文件,首行应该加文件头:#coding:文件存时用的编码
      2. 用python2写程序,定义字符串应该加前缀u,如x=u'上'
      3. python3中的字符串都是unicode编码的,python3的字符串encode之后可以得到bytes类型

        

  • 相关阅读:
    嵌入式Linux操作系统学习规划
    底层机器指令学习
    汇编学习笔记
    无符号和有符号数操作优先级
    栈和堆的区别
    图Graph
    判断单链表里面有没有环
    centos配置中文显示和中文输入
    数组相关问题求解
    KMP算法
  • 原文地址:https://www.cnblogs.com/msj513/p/9674534.html
Copyright © 2011-2022 走看看