python教程3.3:字符和编码

news/发布时间2024/5/18 12:19:08

1、二进制

计算机只能存储和识别二进制,但是人类常用的字母、数字、汉字怎么用计算机存储和识别呢?

人类强行约定一个对应表,把数字、字母和数字进行对应上,这样就可以用二进制表示字母和数字了。

2、ASCII编码

ASCII是美国于1967年创建,只有127个字母和数字(后面扩展128个,一共255个),用8位二进制来表示。

 ⼀个空格对应的数字是0,     翻译成⼆进制就是00000000

⼀个对勾√对应的数字是251 ,翻译成⼆进制就是11111011

3、计算机容量单位

二进制的每⼀位0或者1所占的空间单位为bit(⽐特),这是计算机中最⼩的表示单位。

每8个bit组成⼀个字节,这是计算机中最⼩的存储单位。

 4、GB2312和GBK

中国自己1980年设计的GB2312编码表,一共存6763个汉字,用2个字节表示一个汉字。

但是如果中英文混合的情况,中文用2个字节GB2312,英文用ASCII编码。

中英文区别规则:

如 果2个字节连在⼀起,且每个字节的第1位(也就是相当于128的那个2进制位)如果是1,就代表这是个中 ⽂,这个⾸位是128的字节被称为⾼字节。 也就是2个⾼字节连在⼀起,必然就是⼀个中⽂。 你怎么如 此笃定?因为0-127已经表示了英⽂的绝⼤部分字符,128-255是ASCII的扩展表,表示的都是极特殊的 字符,⼀般没什么⽤。所以中国⼈就直接拿来⽤了。

1995年扩展升级了GB2312,增加了很多生僻字、字符、藏语、维吾尔语等,叫GBK,现在windows的中文版本编码默认就是GBK。

5、编码战国时代--出现Unicode

各个国家都搞出自己的编码,不同国家软件流通就遇到问题。Unicode应运⽽⽣。Unicode把所有语⾔都统⼀到⼀套编码⾥,这样就不会再有乱码问题了。

Unicode 2-4字节 已经收录136690个字符,并还在⼀直不断扩张中…

Unicode标准也在不断发展,但最常⽤的是⽤两个字节表示⼀个字符(如果要⽤到⾮常偏僻的字符,就 需要4个字节)

Unicode特点:

1. ⽀持全球所有语⾔

2. 可以跟各种语⾔的编码⾃由转换,也就是说,即使你gbk编码的⽂字 ,想转成unicode很容易。

Unicode跟所有语言都有对应关系,可以很容易进行互相转换。

6、UTF-8的出现

如果你写的⽂本基本上全 部是英⽂的话,⽤Unicode编码⽐ASCII编码需要多⼀倍的存储空间,由于计算机的内存⽐较⼤,并且 字符串在内容中表示时也不会特别⼤,所以内容可以使⽤unicode来处理,但是存储和⽹络传输时⼀般 数据都会⾮常多,那么增加1倍将是⽆法容忍的!!!

为了解决存储和⽹络传输的问题,出现了Unicode Transformation Format,学术名UTF,即:对 unicode字符进⾏转换,以便于在存储和⽹络传输时可以节省空间!

UTF-8: 使⽤1、2、3、4个字节表示所有字符;优先使⽤1个字节、⽆法满⾜则使增加⼀个字节, 最多4个字节。英⽂占1个字节、欧洲语系占2个、东亚占3个,其它及特殊字符占4个

UTF-16: 使⽤2、4个字节表示所有字符;优先使⽤2个字节,否则使⽤4个字节表示。

UTF-32: 使⽤4个字节表示所有字符;

UTF 是为unicode编码 设计 的⼀种 在存储 和传输时节省空间的编码⽅案。

7、编码汇总一览表

 8、Py2 Vs Py3编码

python⽣下来的时候 还没有unicode&utf-8, 所以⻳叔选⽤的默认编码只能是ASCII, ⼀直到py2.7,⽤的 还是ASCII, 导致Py默认只⽀持英⽂,想⽀持其它语⾔,必须单独配置。

到了Py3推出后,终于把默认编码改成了unicode, 同时⽂件存储编码变成了utf-8,意味着,不⽤任何声 明,你就可以写各种语⾔⽂字在你的Python程序⾥。 从此,程序们⼿牵⼿过上了快乐的⽣活。

 16进制

 16进制在计算`机领域应⽤普遍,常⻅的有html\css的颜⾊表、mac地址、字符编码等都⽤16进制来表 示。 这是因为将4个位元(Bit)化成单独的16进制数字不太困难。1字节可以表示成2个连续的16进制 数字。可是,这种混合表示法容易令⼈混淆,因此需要⼀些字⾸、字尾或下标来显示,在C语⾔、C++、 Shell、Python、Java语⾔及其他相近的语⾔使⽤字⾸“0x”来标示16进制,例如“0x5A3”代表1443。

 9、不同字符的转换

GBK编码的字符如何转成utf-8存储

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ulsteruni.cn/article/30863736.html

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

团队作业3--需求改进系统设计

这个作业属于哪个课程 软件工程这个作业要求在哪里 团队作业3--需求改进&系统设计这个作业的目标 明确需求、改进原型、系统设计和测试需求团队Gitee仓库链接 Gitee鏈接团队成员:姓名 学号蔡梓严(队长) 3122004686刘睿 3122004697吴炳辉 3122004709陈翼 3122006207林诗芸…

DNF pvf 各版本客户端下载大全

整个客户端,pvf文件占1600多个G全部版本文件获取: https://githubs.xyz/y16.html60版本,70版本,86,86版本,90等全部都有纯净月魂86版本月魂的初版,没有任何修改。 怪物难度强度大。也是我最推荐的版本。朝暮,追忆,原仿官都有。 算了,我摊牌了,基本上什么版本都有。6…

python包:torchsummary

利用torchsummary观察每一层的情况1)按照方式 pip install torchsummary 2)

16.5k star,开源推荐,go语言写的堡垒机

16.5k star,开源推荐,go语言写的堡垒机 原创 大侠之运维 大侠之运维 2024-05-04 00:02 江西teleport是一款go语言写的堡垒机,目前已经开源,可以自己部署体验下,teleport适合主机、kubernetes、数据库、RDP以及web服务。传送门:https://github.com/gravitational/teleport…

国芯科技产品系列

国芯科技产品系列 GX8003 高性能离线语音识别芯片 产品简介 GX8003是面向离线语音识别市场推出的高性能低成本SoC芯片。它集成了国芯第二代神经网络处理器 gxNPU V200,集成音频ADC、DAC,内置晶振和Flash。芯片支持高性能的语音唤醒,和自定义的离线语音指令识别。具有识别率高…

4.3万字详解PHP+RabbitMQ(AMQP协议、通讯架构、6大模式、交换机队列消息持久化、死信队列、延时队列、消息丢失、重复消费、消息应答、消息应答、发布确认、故障转移、不公平分发、优先级、等)

理论(后半部分有实操详解) 哲学思考易经思维:向各国人讲述一种动物叫乌龟,要学很久的各国语言,但是随手画一个乌龟,全世界的人都能看得懂。 道家思维:努力没有用(指劳神费心的机械性重复、肢体受累、刻意行为),要用心(深度思考、去感悟、透过现象看本质)才有用。 举…