- 5
- 0
- 约6.66千字
- 约 4页
- 2023-07-10 发布于上海
- 举报
python以某种编码进⾏打印_python字符串编码
python默认编码
python 2.x默认的字符编码是ASCII,默认的⽂件编码也是ASCII。
python 3.x默认的字符编码是unicode,默认的⽂件编码是utf-8。
中⽂乱码问题
⽆论以什么编码在内存⾥显⽰字符,存到硬盘上都是⼆进制,所以编码不对,程序就会出错。
常见编码有ascii编码(美国),GBK编码(中国),shift_JIS编码(⽇本),unicode(统⼀编码)等。
需要注意的是,存到硬盘上时是以何种编码存的,再从硬盘上读出来时,就必须以何种编码读,要不然就会出现乱码问题。
常见的编码错误的原因有如下,出现乱码时,按照编码之前的关系,挨个排错就能解决问题。
python解释器的默认编码;
Terminal使⽤的编码;
python源⽂件⽂件编码;
操作系统的语⾔设置。
Python⽀持中⽂的编码:utf-8、gbk和gb2312。uft-8为国际通⽤,常⽤有数据库、编写代码。gbk如windows的cmd使⽤。
编码转换
如果想要中国的软件可以正常的在美国⼈的电脑上实现,有下⾯两种⽅法 :
让美国⼈的电脑都装上gbk编码
让你的软件编码以utf-8编码
第⼀种⽅法不可现实,第⼆种⽅法⽐较简单,但是也只能针对新开发的软件,如果之前开发的软件就是以gbk的编码写的,上百万⾏代码已
经写出去了,重新编码成utf-8格式也会费很⼤⼒⽓。
所以,针对已经⽤gbk开发的软件项⽬如何进⾏编码转换,利⽤unicode的⼀个包含了跟全球所有国家编码映射关系的功能,就可以实现编
码转换。⽆论以什么编码存储的数据,只要我们的软件把数据从硬盘上读到内存,转成unicode来显⽰即可,由于所有的系统、编程语⾔都
默认⽀持unicode,所有我们的gbk编码软件放在美国电脑上,加载到内存⾥⾯,变成了unicode,中⽂就可正常展⽰。
类似⽤如下的转码的过程:
源有编码 - unicode编码- ⽬的编码
decode(UTF-8) 解码-- unicode -- encode(gbk)编码
#_*_coding:utf-8_*_ 的作⽤
在python2⽂件中,经常在⽂件开头看到 “#_*_coding:utf-8 _*_ ”语句,它的作⽤是告诉python解释器此.py⽂件是utf-8编码,需要⽤
utf-8的编码去读取这个.py⽂件。
python2.x的bytes与python3.x的bytes的区别
Python2将string处理为原⽣的bytes类型,⽽不是unicode。⽽Python3所有的string均是unicode类型。
在python2.x中,写字符串,⽐如
s =”学习“prints
学习s #字节类型
\xd1\xa7\xcf\xb0
虽然说打印的是中⽂学习,但是直接调⽤变量s时,显⽰的却是⼀个个16进制表⽰的⼆进制字节,我们称这个为byte类型,即字节类型,它
把8个⼆进制组成⼀个byte,⽤16进制表⽰。
所以说python2.x的字符串其实更应该称为字符串,通过存储的⽅式就能看出来,但是在python2.x中还有⼀个bytes类型,两个是否相同
呢,回答是肯定的,在python2.x中,bytes==str。
python3.x中,把字符串变成了unicode,⽂件默认编码为utf-8。这意味着,只要⽤python3.x,⽆论我们的程序以那种语⾔开发,都可以
在全球各国电脑上正常显⽰。
python3.x除了把字符串的编码改成了unicode,还把str和bytes做了明确区分,str就是unicode格式的字符串,⽽bytes就是单纯的⼆进
制。(补充⼀个问题,在python3.x中,只要把unicode编码,字符串就会变成了bytes格式,也不直接打印成gbk的字符,我觉得就是想通
过这样的⽅式明确的告诉你,想在python3.x中看字符串,必须是unicode,其他编码⼀律是bytes格式)。
深⼊中⽂编码问题
python3内部使⽤的是unicode编码,⽽外部却要⾯对千奇百怪的各种编码,⽐如作为中国程序经常要⾯对的gbk,gb2312,utf8等,那
这些编码是怎么转换成内部的unicode呢?
⾸先看⼀下源代码⽂件中使⽤字符串的情况。源代码⽂件作为⽂本⽂件就必然是以某种编码形式存储代码的,python2默认源代码⽂件是
asci编码,python3默认源代码⽂件是utf-8编码。⽐如给python2代码⽂件中的⼀个变量赋值:
s1 = a
print s1
python2认为这个字符a就是⼀个as
您可能关注的文档
最近下载
- 半导体封装流程完整PPT课件.pptx VIP
- 四川省高职单招大纲英语词汇2500词音标素材.docx VIP
- 中国音乐史与名作欣赏 课件-第二十讲.ppt VIP
- 深圳市城市轨道交通第四期建设规划调整(2017-2022)》环境影响评价报告书.pdf VIP
- 扬职大2025单招试卷 .pdf VIP
- 清华大学微电子封装技术 外壳选择及封装设计基础.pdf VIP
- 2021-2025年高考数学真题 导数及其应用(解答题)8种常见考法归类(解析版).pdf
- 春节习俗的现代转变.pptx VIP
- Schneider Electric施耐德TeSys T LTMR 电机管理控制器 以太网通讯指南(中文).pdf
- 电缆网络图识读信号工程施工课件.pptx VIP
原创力文档

文档评论(0)