python3字符集之间--encode与decode之间的转码详解
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之间的转码详解的更多相关文章
- python2和python3的编码encode解码decode函数
python比较坑的一个点:意义完全变了的两个函数 首先 常用的编码方式有3种,utf-8: 常用的传输和存储格式,Unicode的一种简化 Unicode:包括了所有可能字符的国际统一编码 GBK ...
- Vue路由实现之通过URL中的hash(#号)来实现不同页面之间的切换(图表展示、案例分析、附源码详解)
前言 本篇随笔主要写了Vue框架中路由的基本概念.路由对象属性.vue-router插件的基本使用效果展示.案例分析.原理图解.附源码地址获取. 作为自己对Vue路由进行页面跳转效果知识的总结与笔记. ...
- Python3中真真假假True、False、None等含义详解
概述 在Python中,不仅仅和类C一样的真假类似,比如1代表真,0代表假.Python中的真假有着更加广阔的含义范围,Python会把所有的空数据结构视为假,比如[](空列表).{}(空集合).'' ...
- 在python3 encode和decode 的使用
说这个问题之前必须的介绍关于编码的在我们这的发展: 首先电脑能识别的最初的语言是二进制 ---010101这种 然后在是我们知道的ASSIC码 再过了就是 gb2312----------->g ...
- python3.3 unicode(encode&decode)
最近在用python写多语言的一个插件时,涉及到python3.x中的unicode和编码操作,本文就是针对编码问题研究的汇总,目前已开源至github.以下内容来自项目中的README. 1 ASC ...
- python3的encode()和decode()
python3的encode()和decode() 在python3的内存中. 在程序运行阶段. 使⽤用的是unicode编码. 因为unicode是万国码. 什么内容都可以进行显示. 那么在数据传输 ...
- python3编码(encode,decode)
python3默认编码为unicode,由str类型进行表示.二进制数据使用byte类型表示. 字符串通过编码转换成字节码,字节码通过解码成为字符串 encode:str --> bytes d ...
- (十一)python3 encode()和decode()
从英文意思上看,encode和decode分别指编码和解码.在python中,Unicode类型是作为编码的基础类型,即: decode encode str ---------> str(Un ...
- python encode和decode函数说明【转载】
python encode和decode函数说明 字符串编码常用类型:utf-8,gb2312,cp936,gbk等. python中,我们使用decode()和encode()来进行解码和编码 在p ...
随机推荐
- 安装使用phpStudy在本机配置php运行环境
前言: php开发的初学者,强烈推荐使用phpStudy集成环境,一方面这个的确很好用(本人电脑安装了jspStudy,可以同时调试php和jsp),另一方面呢,虽然本人是技术控,但对这些繁杂的安装部 ...
- 14-n皇后
/*题目内容: 国际象棋中的皇后可以沿着水平线,垂直线,或者斜线前进,吃掉遇到的所有棋子,如果棋盘上有八个皇后,则这八个皇后如何相安无事的放置在棋盘上,1970年与1971年, E.W.Dijkstr ...
- docker搭建nginx
在Docker下部署Nginx,包括: 部署一个最简单的Nginx,可以通过端口访问默认的网站 设置记录访问和错误日志的路径 以交互模式创建centos容器,如果本地没有镜像,会从仓库获取, 等待即可 ...
- C# Socket网络编程精华篇
我们在讲解Socket编程前,先看几个和Socket编程紧密相关的概念: TCP/IP层次模型 当然这里我们只讨论重要的四层 01,应用层(Application):应用层是个很广泛的概念,有一些基本 ...
- struts框架问题四之获取到值栈的对象
4. 问题四 : 如何获得值栈对象 * 获得值栈对象 有三种方法 * ValueStack vs1 = (ValueStack) ServletActionContext.getRequest().g ...
- Step1-有序顺序表
#include<stdio.h> #define N 100 typedef struct jcb{ ]; int arrtime; int reqtime; }jcb; jcb job ...
- [Jmeter]Xpath获取元素某个属性的值,以及获取最后一个元素某个属性的值
XPath获取元素某个属性的值 XPath query: clients/attribute::total XPath获取最后一个元素某个属性的值 XPath query: /clients/c ...
- C和C++之间库的互相调用
http://www.cppblog.com/wolf/articles/77828.html 昨晚有个朋友问我关于在C中调用C++库的问题,今天午饭后,由于脖子痛的厉害而没有加入到我们组的“每天一战 ...
- 2018.09.27 bzoj2510: 弱题(概率dp+循环矩阵优化)
传送门 简单概率dp. 显然每次转移的式子可以用一个矩阵表示出来: 这个是循环矩阵. 因此只用维护第一行快速幂一波就行了. 代码: #include<bits/stdc++.h> #def ...
- 2018.06.29 NOIP模拟 边的处理(分治+dp)
边的处理(side.cpp) [问题描述] 有一个 n 个点的无向图,给出 m 条边,每条边的信息形如<x,y,c,r><x,y,c,r><x,y,c,r>. 给出 ...