标签:格式 日本 运算 width 编辑 操作 区分 基础 语言
1.运行程序的三个核心硬件 cpu 内存 硬盘 2.任何一个程序要想运算,必选先有硬盘加载到内存,然后cpu去内存取指执行
3.运行着的应用程序产生的数据 必先存在内存
1.将python解释器的代码由硬盘读到内存 2.将xxx.py以普通文本文件形式读到内存 3.python读取文件内容 识别python语法 执行相应操作 ps:普通的文本编辑器与python解释器前两步都是一样的
1.字符编码表就是字符与数字的对应关系 2.字符编码针对的是字符,只跟文本文件有关,与视频音频等无关 3.保证不乱码在于文本文件以什么编码编的就以什么编码解
1.数据由内存保存到硬盘 内存中的unicode格式二进制数字 >>>>编码(encode)>>>>> utf-8格式的二进制数据 2.硬盘中的数据由硬盘读到内存 硬盘中的utf-8格式的二进制数据 >>>>>解码(decode)>>>>> 内存中unicode格式的二进制数据
3.
python2将py文件按照文本文件读入解释器中默认使用ASCII码(因为在开发python2解释器的unicode还没有盛行)
python3将py文件按照文本文件读入解释器中默认使用utf-8
pycharm终端用的是utf-8格式
5.现在的计算机
windows终端采用的是gbk
内存都是unicode
硬盘都是utf-8
x = ‘上‘
res1 = x.encode(‘utf-8‘) # 将unicode编码成可以存储和传输的utf-8的二进制数据
print(res1) # b‘\xe4\xb8\x8a‘
# bytes类型 字节串类型 你就把它当成二进制数据即可
res2 = res1.decode(‘utf-8‘) # 将硬盘中的utf-8格式的二进制数据解码成unicode格式的二进制数据
print(res2) #上
#只支持英文和一些特殊字符 用八位二进制表示一个英文字符 所有的英文字符+符号最多也就在125位左右 0000 0000 1111 1111
#支持中文的编码表 用2Bytes表示一个中文字符 还是用1Bytes表示一个英文字符 0000 0000 0000 0000 1111 1111 1111 1111 最多能表示2**8-1=65535个字符 基于上面的推导步骤 任何一个国家要想让计算机支持本国语言都必须自己创建一个字符与数字的对应关系 日本人 shift 韩国人 fuck
统一用2Bytes表示所有的字符 a 0000 0000 0010 1010 unicode的两个特点 1.用户在输入的时候,无论输什么字符都能够兼容万国字符 2.其他国家编码的数据由硬盘读到内存的时候unicode与其他各个国家的编码都有对应关系
为了解决万国码占内存问题,出现了UTF-8 unicode transformation 转换 format格式 会将unicode的英文字符由原来的2Bytes变成1Bytes 会将unicode中文字符由原来的2Bytes变成3Bytes 将生僻字符变成4-6Bytes 中国人吃点亏世界人占了便宜
补充:
# 你a他
# 1Bytes|1Bytes|1Bytes|1Bytes|1Bytes|1Bytes|1Bytes 怎么区分3+1+3=你+a+他?
# 1+7bit|1+7bit|1+7bit|1+7bit|1+7bit|1+7bit|1+7bit 每个字节由1+7bit组成,其中1为标识位
1.python2将py文件按照文本文件读入解释器中默认使用ASCII码(因为在开发python2解释器的unicode还没有盛行)
2.文件头 # coding:utf-8 当你不指定文件头的时候,默认用ASCII存储数据,如果指定文件头那么就按照文件头的编码格式存储数据 因为所有的编码都支持英文字符,所以文件头才能够正常生效 3.基于Python2 解释器开发的软件,只要是中文,前面都需要加一个u
标签:格式 日本 运算 width 编辑 操作 区分 基础 语言
原文地址:https://www.cnblogs.com/xp1315458571/p/11140546.html