最近一直在讲python基础,小编一直在考虑要不要增加难度。这个问题我犹豫了很久,生怕一些python新手接受不了知识点。但是最近,小编接到了很多朋友的强烈要求,想学习编码这个模块的知识。小编一向有求必应,第一时间为大家整理了python字符编码相关的知识。接下来,让我们看看能不能一起学习。
编码介绍
在人类社会中,不同的国家有不同的标准语法,简体中文、繁体中文、美式英语、英式英语等等……
但是机器保存的数据是用特殊的方式保存的,读取的时候也是用同样的方式解释的。
在Python3中,默认的处理中文的方式叫做UTF-8。 【对比可见损坏:UTF-8支持中文,Python2默认格式为ASCII,不支持中文】
同一个汉字,如“中国”,用UFT-8方式转入硬盘,如保存为“110”,再用UFT-8方式读取,同样显示“中国”;方法转移到硬盘,“China”会存为“101”,再通过UTF-8读取,肯定不会显示为“China”,可能是乱码乱码“hot hot hot hot hot hot hot”热热”;
虽然上面的110、
119
、烫烫烫是乱填的,下面示例代码中有具体值,总之一个:想要显示正常,读取数据时格式,必须和保存数据时使用的一致。
闲扯几句——Python2 字符串设计上的一些缺陷:
使用
ASCII
码作为默认编码方式,对中文处理很不友好。
把字符串牵强地分为
unicode
和
str
两种类型,误导开发者
以上提及的两个问题,
Python3
都很好的解决了
首先,
Python3
把系统默认编码设置为
UTF-8
然后,更清楚地区分文本字符和二进制数据
str
和
bytes
表示。
代码示例:
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的人应该都能看懂是啥意思~~
我们看一下运行结果:
小甲
<class 'str'>
utf-8
('en_US', 'UTF-8')
正如大家所想,
就是将
“
小甲”原样打印出来, 再把“小甲”存到3个文件中。
(
shift-jis
是日文编码格式)
这里解释一下打印出来的两个“utf-8”是什么意思:
上面的 utf-8 指:系统默认编码
注:
不要把系统以为是操作系统,这里可以理解成
python3
的编译器本身
下面的
utf-8
指:本地默认编码
注:
这个才是操作系统的编码。(在
Windows
运行会变成gbk)
今天分享的python3字符编码的内容到这里就结束了。虽然有实例介绍,但不知道小伙伴们能否完全看懂今天的内容呢?如果实在不会,可以私下互相学习交流。相信大家最后都能学会~
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 如何使用下标在 Python 中获取列表的单个值11/15
- ♥ mongodb连接数据库的步骤是什么12/04
- ♥ 新手必看! Python类、模块、包的概念和区别11/19
- ♥ python数据类型的使用注意事项01/08
- ♥ 如何理解 Python 中的多态性?11/05
- ♥ 如何编写python头文件09/20
内容反馈