一、前戏
# 储备知识:
# 运行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共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。