第四章:字符编码

一、前戏

# 储备知识:
# 运行python程序的三个阶段:python3 D:\test.py
# 1、先启动python解释器
# 2、python3解释器会将test.py的内容当成普通的文本内容读入内存
# 3、python3解释器开始解释执行刚刚读入内存的内容,开始识别python语法
# x = "上"
# print("hello")

二 、字符编码介绍

1、什么是字符编码
    字符==========编码===============》数字
    字符《==========解码===============》数字

2、哪些地方用到字符编码
    2.1 写程序:
        字符--------编码-------》数字
        字符编码必须包含我们输入的字符与数字的对应关系
        否则,数据在存的时候就出问题了  ......

    2.2 执行程序:
        1、前两个阶段
        2、第三个阶段

        不乱码的核心:存的时候用什么编码格式,读就应该用什么编码格式



3、字符编码表

    ASCII:只能识别英文字符
        用8bit的二进制数对应一个英文字符

        8bit=1Byte
        1024Byte=1KB
        1024KB=1MB
        1024MB=1GB


        英文字符------------ASCII二进制(内存)------>ASCII二进制(硬盘)


    GBK:中文、英文字符
        用16bit的二进制数对应一个中文字符

        英文、中文字符------------gbk二进制(内存)------>gbk二进制(硬盘)


    Shift-JIS:日本、英文字符
    Euc-KR:韩文、英文字符


    unicode:万国字符
        用16bit对应一个字符

        万国字符----------------unicode二进制(内存)------>



    utf-8:
        1Byte对应一个英文字符
        3Bytes对应一个中文字符

4、编码与解码
    中文、英文字符------------unicode二进制(内存)------>gbk二进制(硬盘)
    日文、英文字符------------unicode二进制(内存)------>shif-jis二进制(硬盘)
    万国字符------------------unicode二进制(内存)------>utf-8二进制(硬盘)
                    编码                           编码
                    解码                           解码



"""


x = '上'


# 1.1 编码
# 语法之类型:str------------>bytes
# 内存角度:  unicode-------->gbk
# res=x.encode('gbk')
# print(res,type(res))


# 1.2 解码
# 语法之类型:str<------------bytes
# 内存角度:  unicode<--------gbk
# res=x.encode('gbk')
# print(res)

# xxx=res.decode('gbk')
# print(xxx,type(xxx))

三、结论(记结论,过程了解即可)

    结论1:
        存不乱=》建议用utf-8格式存入硬盘
        取不乱=》在存不乱的前提下,采用与当成存数据时一样的编码格式

    结论2:
        保证py程序前两个阶段不乱码:加文件头#coding:文件的当初存的编码

    结论3:
        保证py程序第三个阶段不乱吗:u"字符串"

作者:吴常文
出处:https://blog.csdn.net/qq_41405475
本文版权归作者和CSDN共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

猜你喜欢

转载自blog.csdn.net/qq_41405475/article/details/113528666