金角大王Alex  python 之路,致那些年,我们依然没搞明白的编码

python2与python3的区别

py2

str = bytes

为什么有bytes?

是因为要表示图片、视频等二进制格式的数据。

以 utf-8 编码的字符串,在windows上不能显示(Linux默认编码 utf-8 ,windows默认编码 gbk)

如何在python2里实现写一个软件,在全球各国的电脑上都能直接看?

以unicode编写你的软件      s = you_str.decode( ' utf-8 ' )

unicode类型

文件头

py2:以 utf-8 or gbk... 编码的代码,代码内容加载到内存,并不会被转成unicode,编码依然是 utf-8 or gbk...

py3:以 utf-8 or gbk... 编码的代码,代码内容加载到内存,会被自动转成unicode

py3

str = unicode

Python2和Python3编码总结

py2里有str,unicode,bytes,str和bytes基本一致,只有在图片、视频里是不一样的。  py2 str = py3 unicode

py2不支持中文,默认编码是ASCII,为使py2里编码的能在全球电脑上显示,于是就在py2里加了一个单独的类型,叫unicode,如果程序想在全球电脑里显示,那就要在内存里将编码转成unicode。

py3里,字符串默认编码unicode,文件默认编码 utf-8 ,将str和bytes做了明确的区分:str就是unicode格式的字符串,bytes就是单纯的二进制。

py3里不管打印什么字符都是unicode,py2里打印字符会打印成其对应的 utf-8 或 gbk。

unicode是为了存储和传输,传输是用二进制,存到硬盘里用的是 utf-8 或 gbk 。

py3里不要转编码,转编码是不可逆的,转不回来的!!!

Python只要出现各种编码问题,无非是哪里的编码设置错了。常见的编码错误的原因有:

(1)Python解释器的默认编码

(2)Python源文件文件编码

(3)Terminal使用的编码

(4)操作系统的语言设置

Python全栈之路----Python2与Python3的更多相关文章

  1. Python全栈之路----目录

    Module1 Python基本语法 Python全栈之路----编程基本情况介绍 Python全栈之路----常用数据类型--集合 Module2 数据类型.字符编码.文件操作 Python全栈之路 ...

  2. python 全栈之路

    目录 Python 全栈之路 一. Python 1. Python基础知识部分 2. Python -函数 3. Python - 模块 4. Python - 面对对象 5. Python - 文 ...

  3. Python全栈之路目录结构

    基础 1.Python全栈之路-----基础篇 2.Python全栈之路---运算符与基本的数据结构 3.Python全栈之路3--set集合--三元运算--深浅拷贝--初识函数 4.Python全栈 ...

  4. Python全栈之路----常用模块----hashlib加密模块

    加密算法介绍 HASH       Python全栈之路----hash函数 Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列 ...

  5. Python全栈之路-----基础篇

    Python诞生 Python是著名的”龟叔“Guido van Rossum(吉多·范罗苏姆)在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. Python语法很多来自C,但又受到 ...

  6. Python全栈之路----函数----返回值

    函数外部的代码想要获取函数的执行结果,就可以在函数里用return语句,把结果返回. def stu_register(name,age,course='PY',country='CN'): prin ...

  7. Python全栈之路----常用模块----subprocess模块

    我们经常需要通过Python去执行一条系统命令或脚本,系统的shell命令是独立于你的python进程之外的,每执行一条命令,就是发起一个新进程,通过python调用系统命令或脚本的模块在python ...

  8. Python全栈之路----常用模块----包及跨模块导入

    当你的模块文件越来越多,就需要对模块文件进行划分,比如把负责跟数据库交互的都放一个文件夹,把与页面交互相互的放入一个文件夹. 像上面这样,一个文件夹管理多个模块文件,这个文件夹就被称为包. 那不同包之 ...

  9. Python全栈之路----常用模块----os模块

    os模块提供了很多允许你的程序和操作系统直接交互的功能 得到当前工作目录,即当前Python脚本工作的目录路径:os.getcwd() #test.py import os print(os.getc ...

随机推荐

  1. vue中的.native修饰符

    如果你想在某个组件的根元素上绑定事件,直接使用 @click=''function' 是不生效的,我们可以添加.native修饰符 @click.native=''function'',请看以下dem ...

  2. linux驱动编写(pwm驱动)【转】

    本文转载自:https://blog.csdn.net/feixiaoxing/article/details/79889240 pwm方波可以用来控制很多的设备,比如它可以被用来控制电机.简单来说, ...

  3. Lombok 在继承类上面的注意

    找不到符号异常 在控制台项目中配置Lombok 编译会报错 找不到符号 解决 方法: 父类字段ToString不了 @Data @NoArgsConstructor @AllArgsConstruct ...

  4. UVA1203 Argus

    思路 用堆维护每个触发器的下一个事件,每次取出一个事件再把对应触发器的下一个事件加入堆即可 代码 #include <cstdio> #include <algorithm> ...

  5. (转) Ensemble Methods for Deep Learning Neural Networks to Reduce Variance and Improve Performance

    Ensemble Methods for Deep Learning Neural Networks to Reduce Variance and Improve Performance 2018-1 ...

  6. 如何用 python 优雅地完成数据库课设

    0 前言 偶然间发现 Google 收录了学校实验打卡系统的接口,正好要做数据库课设,便拿来作为 environment. 机房居然装了 python ,早就听说 python 写爬虫速度一流,课上的 ...

  7. docker从容器里面拷文件到宿主机或从宿主机拷文件到docker容器里面

    1.从容器里面拷文件到宿主机? 答:在宿主机里面执行以下命令 docker cp 容器名:要拷贝的文件在容器里面的路径       要拷贝到宿主机的相应路径 示例: 假设容器名为testtomcat, ...

  8. python requests用法总结

    requests是一个很实用的Python HTTP客户端库,编写爬虫和测试服务器响应数据时经常会用到.可以说,Requests 完全满足如今网络的需求 本文全部来源于官方文档 http://docs ...

  9. Kotlin 条件控制

    IF 表达式 一个 if 语句包含一个布尔表达式和一条或多条语句. // 传统用法 var max = a if (a < b) max = b // 使用 else var max: Int ...

  10. 『TensorFlow』变量初始化

    变量初始化实质 initializer操作的流程是调用Variable节点组中的Assign节点为节点操作单元分配初始值 变量初始化方法 tf.Variable_initializer([variab ...