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

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

好了,进入正题:

字符串的encode方法会默认编码为utf8格式,gbk编码方式兼容gb2312





两个文件都出现了这样的问题
&nbsp
其中一个我们点击Reload in “GBK”进行了重载,内容正常显示了

另一个我们点击下面的GBK编码方式看看


什么意思呢,我来解释一下
Reload:从硬盘中以新的编码方式读取内容并显示在编辑器上,文件在硬盘上的编码方式不改变
Convet:将现在编辑器上的内容以新的编码方式写入硬盘,覆盖掉原先的内容,编码方式改变。
第一个文件已经选择了Reload,这个文件我们选择Convert
所以,这个文件会将Python�е����顪���뷽ʽ这些内容以gbk编码方式存入硬盘,结果是这样


接下来我们验证以下我们的想法


补充:
网络上的数据以字节流的方式传输,所以

要用utf-8解码才可以得到正确的字符串内容
&nbsp
当然如果想存入文件的话就需要注意啦

从文件中读取的时候可要小心啊,要以文件相应的编码方式读出,比如open函数指定encoding,或者以二进制方式读出,之后在调用str.decode()方法以指定encoding解码。

Python中的幽灵—编码方式的更多相关文章

  1. Python中进行Base64编码和解码

    Base64编码 广泛应用于MIME协议,作为电子邮件的传输编码,生成的编码可逆,后一两位可能有“=”,生成的编码都是ascii字符.优点:速度快,ascii字符,肉眼不可理解缺点:编码比较长,非常容 ...

  2. python中的URL编码和解码

    python中的URL编码和解码:test.py # 引入urllib的request模块 import urllib.request url = 'https://www.douban.com/j/ ...

  3. 如何在Python 中使用UTF-8 编码 && Python 使用 注释,Python ,UTF-8 编码 , Python 注释

    如何在Python 中使用UTF-8 编码 && Python 使用 注释,Python ,UTF-8 编码 , Python  注释 PIP $ pip install beauti ...

  4. python中的字符串编码问题——3.各操作系统下的不同编码方式

    各操作系统下的不同编码方式  先看一下 linux,python2.7 >>> B = b'\xc3\x84\xc3\xa8' >>> B.decode('utf- ...

  5. python中Url链接编码处理(urlencode,urldecode)

    做完了flask-web应用,这几天想用爬虫做个好玩的电影链接整合器,平时找电影都是在dytt或者dy2018之类的网站,在用dytt搜索电影<美国队长时>,发现他的搜索链接是这样的:ht ...

  6. Python学习笔记 (2.2)Python中的字符编码问题及标准数据类型之String(字符串)

    Python3中的String类型 首先,Python中没有字符类型,只有字符串类型.单个字符按照长度为1的字符串处理,这对于曾是OIER的我来说有点不适应啊. 字符串的表示方法 最常用的就是用一对双 ...

  7. python中字符串的编码和解码

    1. 常用的编码 ASCII:只能表示一些字母,数字和特殊的字符,占一个字节 GBK:国家简体中文字符集和繁体字符集,兼容ASCII,占两个字节 Unicode:能够表示全世界上所有的字符,Unico ...

  8. 在python中实现BASE64编码

    什么是Base64编码 BASE64是用于传输8Bit字节的编码方式之一,是一种基于64个可打印字符来表示二进制数据的方法. 如下是转换表:The Base64 Alphabet Base64编码可以 ...

  9. python中zipfile文件名编码的问题

    在python中编程导入压缩包,利用zipfile包,从zipinfo读取文件名总是出错,创建的文件名是乱码,写入pgsql更是出错. 但在ubuntu下测试却正常,在windows下测试总是失败. ...

随机推荐

  1. 2016百度之星资格赛 Problem B(大数+组合数)

    题意:度熊面前有一个全是由1构成的字符串,被称为全1序列.你可以合并任意相邻的两个1,从而形成一个新的序列.对于给定的一个全1序列,请计算根据以上方法,可以构成多少种不同的序列.最多200个1. 比如 ...

  2. easyUI的c if

    {field:'domdistrict2',title:'区县',width:100}, {field:'option',title:'操作',width:fixWidth(0.08),align:' ...

  3. Sketch教程

    去年夏天开始用Sketch,觉得它放Dock里闪亮亮的很好看,当时笑称是男盆友送我的第一颗小钻石噗哈哈.所以那段时间几乎刷遍了所有关于 Sketch 的网站.文章.教程,之后又在自学设计,因为想和更多 ...

  4. 令人窒息的操作,nodejs面向对象。

    // async函数返回一个 Promise 对象,可以使用then方法添加回调函数. // 当函数执行的时候,一旦遇到await就会先返回,等到异步操作完成,再接着执行函数体内后面的语句. clas ...

  5. mysqldump定时任务生成备份文件内容为空解决方法

    1问题:写好了一个mysqldump备份脚本(如图)直接执行可以正常生成备份文件,但在用crontab运行时却生成内容为空 2原因分析:由于mysqldump存在于全局环境变量mysql的bin下面, ...

  6. UML期末复习题

    看了网上的各种UML图的相关资料,找到的都是差不多一样的对图的基本介绍.之前复习的时候也想对不同UML图单独进行复习总结,后来发现这样复习好像没什么用,不能理解每个图之间的关系,所以就没有进一步总结. ...

  7. js常用的正则

     1.5位整数带两位小数/^\d{0,5}(\.\d{0,2})?$/g 2.邮箱/^([0-9A-Za-z\-_\.]+)@([0-9a-z]+\.[a-z]{2,3}(\.[a-z]{2})?)$ ...

  8. C++ STL nth_element

    #include <iostream>#include <algorithm>#include <deque> using namespace std; int m ...

  9. ThreadLocal的简单介绍

    ThreadLocal是什么 早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路.使用这个工具类可以很简洁地 ...

  10. Ubuntu Docker-ce安装

    使用官方给的脚本进行安装 curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun