encode是编码,里面传入的参数是需要转成的字符集,
decode是解码,里面传入的参数是本身的字符集,用本身的字符集解码为unicode字符集再转码

字符集之间的爱恨纠缠

 # -*- coding: utf-8 -*-
'''
Python3 默认编码为unicode
'''
#输出默认编码
import sys
print(sys.getdefaultencoding()) #文件编码为utf-8
s = '你好'
#把s转换为gbk编码
s_to_gbk = s.encode("gbk")
print(s_to_gbk)
#输出结果为bytes类型--b'\xc4\xe3\xba\xc3' #再把此时的gbk转换成utf-8
s_to_utf8 = s_to_gbk.decode("gbk").encode("utf-8")
print(s_to_utf8)
#输出结果为bytes类型--b'\xe4\xbd\xa0\xe5\xa5\xbd' #再把此时的utf-8转换成gb2312
s_to_gb2312 = s_to_utf8.decode("utf-8").encode("gb2312")
print(s_to_gb2312)
#输出结果为byts类型--b'\xc4\xe3\xba\xc3',因为gb2312字符集归属于gbk字符集,所以转换结果bytes相同 #把gbk转换为gb2312
s_to_gbk_gb2312 = s_to_gbk.decode("gbk").encode("gb2312")
print(s_to_gbk_gb2312)
#输出结果为byts类型--b'\xc4\xe3\xba\xc3' '''
encode是编码,里面传入的参数是需要转成的字符集,
decode是解码,里面传入的参数是本身的字符集,用本身的字符集解码为unicode字符集再转码
总结:python3基于unicode编码,若文件头声明为utf-8只是以utf-8字符集显示,基本的还是unicode
当使用unicode转换为utf-8时直接encode("utf-8")就可以了,
同理若使用unicode转换为gbk时直接encode("gbk")就可以了,
若使用utf-8转换成gbk则需要先解码decode("utf-8").encode("gbk")再编码为gbk
若使用utf-8转换成gb2312则需要先解码decode("utf-8").encode("gb2312")再编码为gb2312
若使用gbk转换成utf-8则需要先解码decode("gbk").encode("utf-8")再编码为utf-8
若使用gbk转换成gb2312则需要先解码decode("gbk").encode("gb2312")再编码为gb2312
gb2312同理...
'''

python3字符集之间--encode与decode之间的转码详解的更多相关文章

  1. python2和python3的编码encode解码decode函数

    python比较坑的一个点:意义完全变了的两个函数 首先 常用的编码方式有3种,utf-8:  常用的传输和存储格式,Unicode的一种简化 Unicode:包括了所有可能字符的国际统一编码 GBK ...

  2. Vue路由实现之通过URL中的hash(#号)来实现不同页面之间的切换(图表展示、案例分析、附源码详解)

    前言 本篇随笔主要写了Vue框架中路由的基本概念.路由对象属性.vue-router插件的基本使用效果展示.案例分析.原理图解.附源码地址获取. 作为自己对Vue路由进行页面跳转效果知识的总结与笔记. ...

  3. Python3中真真假假True、False、None等含义详解

    概述 在Python中,不仅仅和类C一样的真假类似,比如1代表真,0代表假.Python中的真假有着更加广阔的含义范围,Python会把所有的空数据结构视为假,比如[](空列表).{}(空集合).'' ...

  4. 在python3 encode和decode 的使用

    说这个问题之前必须的介绍关于编码的在我们这的发展: 首先电脑能识别的最初的语言是二进制 ---010101这种 然后在是我们知道的ASSIC码 再过了就是 gb2312----------->g ...

  5. python3.3 unicode(encode&decode)

    最近在用python写多语言的一个插件时,涉及到python3.x中的unicode和编码操作,本文就是针对编码问题研究的汇总,目前已开源至github.以下内容来自项目中的README. 1 ASC ...

  6. python3的encode()和decode()

    python3的encode()和decode() 在python3的内存中. 在程序运行阶段. 使⽤用的是unicode编码. 因为unicode是万国码. 什么内容都可以进行显示. 那么在数据传输 ...

  7. python3编码(encode,decode)

    python3默认编码为unicode,由str类型进行表示.二进制数据使用byte类型表示. 字符串通过编码转换成字节码,字节码通过解码成为字符串 encode:str --> bytes d ...

  8. (十一)python3 encode()和decode()

    从英文意思上看,encode和decode分别指编码和解码.在python中,Unicode类型是作为编码的基础类型,即: decode encode str ---------> str(Un ...

  9. python encode和decode函数说明【转载】

    python encode和decode函数说明 字符串编码常用类型:utf-8,gb2312,cp936,gbk等. python中,我们使用decode()和encode()来进行解码和编码 在p ...

随机推荐

  1. KMS激活win10专业版失败

    关闭防火墙.杀毒软件之类,激活就成功了. 有个小发现,选择更改产品密钥,输入W269N-WFGWX-YVC9B-4J6C9-T83GX,同时用KMS激活,可能成功率比较高!(专业版的,来自http:/ ...

  2. 真机IOS8.3以上的文件夹共享

    ios8.3以上的版本,苹果规定需要验证身份,将不在默认开启文件共享,但是在实际测试工作中,提取文件是经常需要做的操作,笔者在使用GT采集性能数据后,通过itoos或itunes都无法获得目标app的 ...

  3. 前端知识--------HTML内容

    HTML介绍 1.web服务本质 import socket sk = socket.socket() sk.bind(('127.o.o.1',8080)) sk.listen() while 1: ...

  4. 【校招面试 之 C/C++】第6题 C++深拷贝与浅拷贝

    1.两个的区别(1)在未定义显示拷贝构造函数的情况下,系统会调用默认的拷贝函数——即浅拷贝,它能够完成成员的一一复制.当数据成员中没有指针时,浅拷贝是可行的: 但当数据成员中有指针时,如果采用简单的浅 ...

  5. day4:vcp考试

    Q61. Which two statements are true regarding Virtual SAN Fault Domains? (Choose two.)A. They enable ...

  6. golang通过反射动态调用方法

    func Call(m map[string]interface{}, name string, params ...interface{}) ([]reflect.Value, error) { f ...

  7. 关于session报错问题。

    刚开始一直报500错误,页面不提示,也没想着去查看日志文件.好几天了,一看日志,发现是这个问题.问了一下,是session的问题. 2017/07/25 16:57:49 [error] 2300#0 ...

  8. POJ1180 Batch Scheduling -斜率优化DP

    题解 将费用提前计算可以得到状态转移方程: $F_i = \min(F_j + sumT_i * (sumC_i - sumC_j) + S \times (sumC_N - sumC_j)$ 把方程 ...

  9. 百度词汇检索,计算PMI值

    '''词汇检索百度返回值,并且计算PMI值的类''' from bs4 import BeautifulSoup import requests import re import pandas as ...

  10. 557. Reverse Words in a String III

    static int wing=[]() { std::ios::sync_with_stdio(false); cin.tie(NULL); ; }(); class Solution { publ ...