Python中的幽灵—编码方式

首先要搞懂本地操作系统编码与系统编码的区别:

  1. 本地操作系统编码方式与操作系统有关,Linux默认编码方式为utf-8,Windows默认编码方式为gbk;
  2. 系统编码方式与编译器or解释器有关,Python3解释器默认编码方式为unicode。
  3. 编码方式不仅仅代表编码,也包括解码,因为编码与解码是相对应的。

好了,进入正题:
1752914-20190809214758794-26282582.png
字符串的encode方法会默认编码为utf8格式,gbk编码方式兼容gb2312


1752914-20190809215957781-1558731063.png


1752914-20190809220410399-2134738779.png
1752914-20190809220424572-615916473.png
两个文件都出现了这样的问题
&nbsp
其中一个我们点击Reload in “GBK”进行了重载,内容正常显示了
1752914-20190809220607314-808493038.png
另一个我们点击下面的GBK编码方式看看
1752914-20190809220514625-1636996815.png
1752914-20190809220751663-2051978665.png
什么意思呢,我来解释一下
Reload:从硬盘中以新的编码方式读取内容并显示在编辑器上,文件在硬盘上的编码方式不改变
Convet:将现在编辑器上的内容以新的编码方式写入硬盘,覆盖掉原先的内容,编码方式改变。
第一个文件已经选择了Reload,这个文件我们选择Convert
所以,这个文件会将Python�е����顪���뷽ʽ这些内容以gbk编码方式存入硬盘,结果是这样
1752914-20190809221520600-1183803327.png


接下来我们验证以下我们的想法
1752914-20190809222605102-767670449.png


补充:
网络上的数据以字节流的方式传输,所以
1752914-20190809223404984-981420133.png
要用utf-8解码才可以得到正确的字符串内容
&nbsp
当然如果想存入文件的话就需要注意啦
1752914-20190809224219321-1739494807.png
从文件中读取的时候可要小心啊,要以文件相应的编码方式读出,比如open函数指定encoding,或者以二进制方式读出,之后在调用str.decode()方法以指定encoding解码。

转载于:https://www.cnblogs.com/malinqing/p/11329961.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值