Python入门学习 DAY 07 字符编码

Python入门     

DAY 07

本篇文章主要讲一下字符编码问题

  1.什么是字符编码
        字符------编码(字符编码表)------->二进制

        ASCII:只能表示英文字符,用1Bytes对应一个英文字符
            内存:ASCII
            硬盘:ASCII

        GBK:可以表示中文和英文字符,用1Bytes对应一个英文字符,2Bytes对应一个中文字符
            内存:GBK
            硬盘:GBK

        unicode: 可以对应多国字符,统一用2Bytes对应一个字符
            目前电脑内存的编码都为unicode

            两大特点:
                1 可以兼容多国字符
                2 与多国字符编码都有一种数字与数字的对应关系
                    GBK数字-----解码decode----->unicode数字
                    Shift-JIS数字-----解码decode----->unicode数字

                    GBK数字<-----编码encode-----unicode数字
                    UTF-8数字<-----编码encode-----unicode数字
        utf-8:
            3Bytes对应一个中文字符
            1Bytes对应一个英文字符

2.为什么要有字符编码

因为计算机使用的都是二进制,所以要有一种方法将人类的文字转化成二进制存储,或将二进制转化成人类的文字输出,这就出现了字符编码

 3.保证不乱码的关键:
            1 字符当初以什么编码的,就应该以什么编码去解码

                强调:此时计算机只使用unicode与字符的对应关系

在python2中:
            1 (执行python程序的第二个阶段)解释器在将test.py当普通的文本文件读入内存时默认使用的编码是ASCII
            2 有两种字符串类型:
                str:x="上" # 文件头指定的编码格式的二进制
                unicode:x=u"上" # 存成unicode格式的二进制

                ps:pyhon2中unicode就是python3的str类型

        在python3中:
            1 (执行python程序的第二个阶段)解释器在将test.py当普通的文本文件读入内存时默认使用的编码是UTF-8
            2 (执行python程序的第三个阶段,开始识别语法),会字符类型的值开辟一个内存空间存入unicode格式的二进制
                即python3中的str类型是unicode编码的二进制

            3 字符串类型
                1 str: x="上" # 存成unicode格式的二进制
            4 字节串(等同于二进制)
                字节串=str.encode('utf-8')

        文件头:
            在文件首行写上:coding:utf-8
            就是在告诉python解释器,不要用其默认的编码,用文件头指定的编码
 

以上为本次学习内容,如何疑问欢迎指出

猜你喜欢

转载自blog.csdn.net/sql121407/article/details/81240443
今日推荐