字符编码

知识点

1.计算机系统分为三层:

        应用程序

        操作系统

        计算机硬件

2.运行python程序的三个步骤

        1.先启动python解释器

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

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

字符编码

        1.什么是字符编码

                字符编码表:人类的字符<----------------->数字

                1Bytes=8bit

                1B=8b   1字节等于8个二进制位

 

                 ASCII码:只能识别英文字符,1英文字符=8bit

                        用8个二进制bit(比特位)位表示一个英文字符

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

                 Shift_JIS   日本

                 Eur-kr   韩国

                 unicode:能够识别万国字符,1字符=2Bytes=16bit

                         两个特点:

                                    1、能够兼容万国字符
                                    2、与各个国家的字符编码都有映射关系

                 utf-8:是unicode的转换格式,1个英文字符=1Bytes  1汉字=3Bytes

                 重点理论:

                              1.编码与解码:

                                     字符---编码-->unicode的二进制-----------编码---------->GBK的二进制

                                     GBK的二进制-------解码-->unicode的二进制----解码->字符

                               2.解决乱码问题的核心法则:

                                     字符用什么编码格式编码的,就应该用什么编码格式进行解码

                               3.python解释器默认的字符编码

                                            python2:ASCII

                                            python3:UTF-8

                                            

                                            通过文件头可以修改python解释器默认使用的字符编码

                                            在文件首行写:#coding:文件当初存的时候用的字符编码

                                            针对python2解释器中定义字符串应该:

                                                      x=u'上'

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

                                            在python3中

                                                      x='上'          #'上'存成了unicode

                     

                                                      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类型

                                为何字符要编码

                                          人类与计算机打交道用的都是人类的字符,而计算机无法识别人类的字符,只能识别二进制,所以必须将人类的字符编码成计算机能识别的二进制数字.

原文地址:https://www.cnblogs.com/xiamenghan/p/9677292.html