Python学习-字符编码浅析
1.什么是字符编码
既然是简述那肯定是简单明了.字符编码,看名字就是一种字符的编码格式,由于计算机内部采用二进制,想要将人类的语言字符输入到计算机就需要一种编码格式,这就是字符编码.字符-------编码(字符编码表)----->二进制.
计算机存取人类输入的内容并不是直接保存的,因为计算机并不懂人的语言,每个国家还有每个国家的语言.那么怎么办呢?于是就有一种统一的规定,人类输入到内存中的信息都存为uncode字符编码格式的,再由内存存入计算机硬盘.硬盘有很多种编码格式,这是因为为了向下兼容.而我们在学习时只需要大致了解就行了.
unicode:目前的计算机内存使用的就是这种编码格式,能够兼容万国的字符,与别的字符编码都有一种对应关系.
utf-8:英文名为(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码.
gbk:是为了兼容汉字的字符编码
2.python2与python3的区别
python2:在python2中将文件读入到内存中使,解释器默认使用的是ASCII码.但是在文件的首行写上 coding:utf-8,解释器就会按将utf-8作为编码标准不再使用默认的字符编码,这就是文件头了.
python3:解释器默认使用utf-8
总结:为了保证不乱码的关键! 字符当初存储在计算机中使是用什么编码的,就应该用什么解码.
焚膏油以继晷,恒兀兀以穷年。低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Java 的双重分发与 Visitor 模式
双重分发(Double Dispatch) 什么是双重分发? 谈起面向对象的程序设计时,常说起的面向对象的「多态」,其中关于多态,经常有一个说法是「父类引用指向子类对象」。 这种父类的引用指向子类对象的写法类似下面这种: 另一种常用的形式是 那上面的keeper调用两次say的时候,会输出什么内容呢?会调用到两个不同的方法吗? 实际上在这两次调用的时候,都会调用到say(Animal a)这个方法。由于这些内容在编译期就能确实下来,这就是 Java 的静态分发。 从上面的图我们看到,对于两次调用生成的字节码,确实都指向了say(Animal a)这个方法,运行时直接执行方法,输出了对应的内容。 那对应的animal.bark()为什么最终会调用到 dog 类的方法?这是在运行时确定具体的方法接收者的类型并执行。这就是所谓的动态分发,在运行时确定具体的方法,实现面向对象的多态。 分发(Dispatch) 分发就是指最终确定一个要执行的方法的过程。 对于 Java 等静态语言来说,都是通过 单一分发(Single Dispatch)来进行的方法执行。 比如这样一行代码 dog.eat...
- 下一篇
终于可以向重复的鉴权代码说byebye 了 -- (玩转 AOP和Annotation )
缘起 最近在写代码时,不可避免的会写成出进行大量的鉴权逻辑。 如下面代码所示,每一个方法都要添加一个鉴权逻辑(样例只有4个方法,实际工作中会很多) class Action{ public void get() { checkRights(); //鉴权代码 //业务代码 } public void put() { checkRights(); //鉴权代码 //业务代码 } public void delete() { checkRights(); //鉴权代码 //业务代码 } public void post() { checkRights(); //鉴权代码 //业务代码 } } 作为一个善于偷懒的码农,看到如上代码应该会敏锐得意识到‘Don't repeat yourself’的编程箴言了,重复代码带来的问题,我就不再累述了,相信大家都身受其害。 如何解决呢? 那么该如何消除到这些大量烦人的重复逻辑呢。 有的同学可能已经想到了,可以在web框架的流水线中增加一个鉴权处理器,这的确是一个可行方案,我们这里就不详细解释了。 这里给出另外一个利用AOP进行重复代码消除的技术,那么什...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Red5直播服务器,属于Java语言的直播服务器
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS6,CentOS7官方镜像安装Oracle11G
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装