字符编码
1.计算机基础2.编程语言和Python语言介绍3.八大基本数据类型4.python语法入门变量和常量5.python和pycharm相关补充6.计算机五大部件补充7.文件操作8.编码和解码
9.字符编码
10.基本数据类型的内置方法11.循坏结构12.流程控制13.基本运算符14.程序与用户交互15.迭代器16.闭包函数17.装饰器18.多层语法糖嵌套19.函数的参数20.函数的可变长参数21.命名关键字参数22.名称空间与作用域23.异常处理24.深浅拷贝问题25.函数的定义和调用26.控制文件读写内容的模式27.主动控制文件内指针移动28.文件的操作方法29.垃圾回收机制GC30.可变与不可变类型31.元类32.内置方法33.pickle模块34.单例模式35.方法补充issubclass和isinstance36.多态37.继承38.面向对象的三大特性39.封装40.内置函数41.面向对象42.logging模块43.subprocess模块44.正则45.datetime模块46.time模块47.绝对路径和相对路径48.random模块49.os模块50.hashlib模块51.模块与包52.json模块53.生成器54.三元运算符字符编码
(一)什么是字符编码
- 人与计算机交互时,用的都是人能够读懂的字符,而计算机只能识别二进制数。
- 翻译的过程必须参照一个特定的标准
- 该标准称之为字符编码表
- 该表上存放的就是字符与数字一一对应的关系。
- 字符编码中的编码就是翻译或者转换的意思,就是将人能理解的字符翻译成计算机能够识别的数字。
(二)字符编码的发展
(1)第一阶段:一家独大(ASCII)
-
ASCII表的诞生
- 现代计算机起源于美国,所以最先考虑仅仅是让计算机识别英文字符,于是诞生了ASCII表
-
ASCII表的特点
- 只有英文字符与数字的一一对应关系
- 一个英文字符对应1Bytes,1Bytes=8bit,8bit最多包含256个数字,可以对应256个字符,足够表示所有英文字符
-
字母对应ASCII表
- A-Z:65-90
- a-z:97-122
- 0-9:48-57
- 小写字母对应的数字一定大于大写字母。
(2)第二阶段:诸侯割据(ASCII/GBK/Shift_JIS)
1.各国编码表:
-
中国的GBK
- 中国人用的计算机里使用字符编码标准是GBK
-
为了能让计算机识别中文和英文,中国人定制了GBK。
-
BGK的特点
- 只有中文字符、英文字符与数字的一一对应关系。
- 一个英文字符对应1个Bytes,一个中文对应2个Bytes。
-
-
补充:
- 1Bytes=8bit,8bit最多包含256个数字,可以对应256个字符,足够表示所有英文字符。
- 2Bytes=16bit,16bit最多包含65536个数字,可以对应65536个字符,足够表示所有中文字符。
-
美国的ASCII
- 美国人用的计算机里使用字符编码标准是ASCII表。
-
现代计算机起源于美国,所以最先考虑仅仅是让计算机识别英文字符,于是诞生了ASCII表
-
日本的Shift_JIS
- 日本人用的计算机里使用字符编码标准是Shift_JIS
-
为了让计算机能够识别日文字符、英文字符与数字的一一对应关系,日本定制了 Shift_JIS表.
-
韩国的Euc-kr
- 韩国人用的计算机里使用字符编码标准是Euc-kr。
-
为了让计算机能够识别韩文字符、英文字符与数字的一一对应关系,韩国定制了 Euc-kr 表。
2.多种编码表共存的缺点:
- 现阶段的计算机采用的字符编码都无法识别其他国家的字符,造成了不可识别、乱步的情况。
- 需要一个兼容万国字符的编码表。
(3)第三阶段:一统天下(unicode)
- unicode于1990年开始研发,1994年正式公布。
1.unicode的特点:
- 所有语言中的字符和数字都是一一对应的关系,即兼容了万国字符。
- 与传统的字符编码的二进制数都有对应关系,详解如下:
- 很多地方或老的系统、应用软件仍会采用各种各样传统的编码,这是历史遗留问题。
- 此处需要强调:软件是存放于硬盘的,而运行软件是要将软件加载到内存的,面对硬盘中存放的各种传统编码的软件,想让我们的计算机能够将它们全都正常运行而不出现乱码,内存中必须有一种兼容万国的编码,并且该编码需要与其他编码有相对应的映射/转换关系,这就是unicode的第二大特点产生的缘由。
2.字符的存储
- 文本编辑器输入任何字符都是最新存在于内存中,是unicode编码的。
- 存放于硬盘中,则可以转换成任意其他编码,只要该编码可以支持相应的字符。
- 英文字符可以被ASCII识别
- 英文字符--->unciode格式的数字--->ASCII格式的数字
- 中文字符、英文字符可以被GBK识别
- 中文字符、英文字符--->unicode格式的数字--->gbk格式的数字
- 日文字符、英文字符可以被shift-JIS识别
- 日文字符、英文字符--->unicode格式的数字--->shift-JIS格式的数字
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)