python

导航

python3字符编码是什么?怎么用?

来源 :中华考试网 2020-11-14

  编码介绍

  在人类社会,不同国家有不同的标准语法,简体汉语、繁体汉语、美式英语、英式英语等.....

  但是机器保存数据是以一种特殊的方式来保存,读取的时候也是以同样的方式来解读。

  在Python3当中,默认处理中文的方式叫UTF-8。【对比出伤害:UTF-8支持中文,Python2默认格式是ASCII,不支持中文】

  同样的一个中文词语,例如:"中国",经过UFT-8方法转存到硬盘中,比如保存成了"110",再通过UFT-8方法读取,也是显示"中国";通过另一种方法转存到硬盘中,"中国"则会保存成"101",然后通过UTF-8读取,肯定不会显示成"中国",也许就是一个乱七八糟的乱码"烫烫烫烫烫烫烫烫烫";

  虽然上面的110、119、烫烫烫是乱填的,下面示例代码中有具体值,总之一个:想要显示正常,读取数据时格式,必须和保存数据时使用的一致。

  闲扯几句——Python2 字符串设计上的一些缺陷:

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

  把字符串牵强地分为 unicode 和 str 两种类型,误导开发者

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

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

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

  填写下面表单即可预约申请免费试听java课程!害怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

  代码示例:

  import sys, locale

  s = "小甲"

  print(s)

  print(type(s))

  print(sys.getdefaultencoding())

  print(locale.getdefaultlocale())

  with open("utf1","w",encoding = "utf-8") as f:

  f.write(s)

  with open("gbk1","w",encoding = "gbk") as f:

  f.write(s)

  with open("jis1","w",encoding = "shift-jis") as f:

  f.write(s)

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

  我们看一下运行结果:

  小甲

  

  utf-8

  ('en_US', 'UTF-8')

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

  (shift-jis是日文编码格式)

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

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

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

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

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

分享到

相关资讯