python3默认的字符编码和文件编码,python3编码格式

  python3默认的字符编码和文件编码,python3编码格式

  最近一直在讲python的基础知识,边肖一直在考虑要不要增加难度。这个问题犹豫了很久,怕有些python小白不能很好的接受知识点。不过最近边肖收到了很多小伙伴的强烈要求,想学习编码这个模块的知识。边肖一向有求必应,马上为大家安排了python字符编码相关知识。看看能不能一起学。

  编码介绍

  在人类社会中,不同的国家有不同的标准语法,如简体中文、繁体中文、美式英语和英式英语。

  但是机器以一种特殊的方式保存数据,并以同样的方式读取数据。

  在Python3中,处理中文的默认方式被称为UTF-8。[对比一下损害:UTF 8支持中文,而Python2的默认格式是ASCII,不支持中文]

  同样一个中文单词,比如‘中国’,用UFT-8法转移到硬盘,比如存为‘110’,再用UFT-8法读取,同样显示‘中国’;如果用另一种方法把它转移到硬盘上,‘中国’就会存为‘101’,然后通读UTF-8。肯定不会显示为‘中国’,也许是个乱七八糟的代号‘烫烫烫烫烫烫烫’;

  虽然上面的110,119,烫烫都是随机填写的,但是下面的样本代码里有具体的数值。总之,要想正常显示,读取数据时的格式必须和保存数据时使用的格式一致。

  聊一聊——Python2字符串设计的一些缺陷:

  使用ASCII码作为默认编码方式对中文处理不友好。

  n style="font-size: 14px; font-family: 微软雅黑, "Microsoft YaHei";">把字符串牵强地分为 unicode str 两种类型,误导开发者

  

以上提及的两个问题,Python3都很好的解决了

  

首先,Python3 把系统默认编码设置为 UTF-8

  

然后,文本字符和二进制数据区分得更清晰,分别用 str bytes 表示。

  

  

代码示例:

  

importsys,locale

  

  s="小甲"

  print(s)

  print(type(s))

  print(sys.getdefaultencoding())

  print(locale.getdefaultlocale())

  

  withopen("utf1","w",encoding="utf-8")asf:

  f.write(s)

  withopen("gbk1","w",encoding="gbk")asf:

  f.write(s)

  withopen("jis1","w",encoding="shift-jis")asf:

  f.write(s)

  

代码很简单,学过Python的人应该都能看懂是啥意思~~

  

我们看一下运行结果:

  

小甲

  <class'str'>

  utf-8

  ('en_US','UTF-8')

  

正如大家所想,就是将小甲”原样打印出来, 再把“小甲”存到3个文件中。

  

shift-jis是日文编码格式)

  

这里解释一下打印出来的两个“utf-8”是什么意思:

  

上面的 utf-8 指:系统默认编码

  

注:不要把系统以为是操作系统,这里可以理解成python3的编译器本身

  

下面的 utf-8 指:本地默认编码

  

注:这个才是操作系统的编码。(在Windows运行会变成gbk)

  

今天分享的python3字符编码的内容到这里就结束了。虽然有示例介绍,也不知道小伙伴们能不能完全理解今天的内容呢?实在不会的可以私下互相学习和交流,相信大家最终都能学会~

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: