Python基础之 一 字符编码及转换
python2 / python3编码转换
先上图一张:

说明:python编码转换的流程是 先进行decode解码,然后进行encode编码
解释:
u'你好' -->带u表示为unicode编码
b'\xc4\xe3\xba\xc3' --> 带b的表示bytes类型
由于utf8 是unicode的扩展,所以unicode和utf8之间是可以直接打印
注意:所有decode动作都是将已编码文件解码为unicode,然后在进行其他编码格式转换(通过encode)
直接举例说明:
#python3下默认字符编码是unicode
s = '你好'
#将unicode直接转换为gbk
s_gbk = s.encode('gbk')
print(s_gbk)
》b'\xc4\xe3\xba\xc3' 这里输出的b代笔bytes类型
print(s.encode()) 括弧内不带转换编码是默认转换为utf-8
#以下是将gbk编码先解码成unicode,然后在编码成utf-8
gbk_to_utf8 = s_gbk.decode('gbk').encode('utf-8')
print(gbk_to_utf8)
测试实例:
python2 上把gb2312转为utf8,然后在转成gbk
#coding:utf-8
#这里默认是utf-8编码
s = '你好'
#先将汉字解码为unicode,然后编码为gb2312并打印
s_to_gb2312 = s.decode('utf-8').encode('gb2312')
#这里修改终端字符集为gb2312
print s_to_gb2312
#先将gb2312解码为unicode,然后编码为utf8并打印
gb2312_to_utf8 = s_to_gb2312.decode('gb2312').encode('utf-8')
#修改终端字符集为utf8
print gb2312_to_utf8
#先将utf-8解码为unicode,然后在编码为gbk
utf8_to_gbk = gb2312_to_utf8.decode('utf-8').encode('gbk')
#修改终端字符集为gbk
print utf8_to_gbk
python3 上把gb2312转为utf8,然后在转成gbk
#注:如果这样:u'你好',这里的u代表这个为unicode编码
s = '你好'
#由于python3默认是unicode编码,所以直接编码为gb2312
unicode_to_gb2312 = s.encode('gb2312')
#将gb2312先解码为unicode,再编码为utf8
gb2312_to_utf8 = unicode_to_gb2312.decode('gb2312').encode('utf-8')
#将utf8解码为unicode,再编码为gbk
utf8_to_gbk = gb23312_to_utf8.decode('utf-8').encode('gbk')
打印如下:全部为bytes类型,bytes类型只显示编码格式
b'\xc4\xe3\xba\xc3'
b'\xe4\xbd\xa0\xe5\xa5\xbd'
b'\xc4\xe3\xba\xc3'
在上一张python3实例图解:

Python基础之 一 字符编码及转换的更多相关文章
- python基础——6(字符编码,文件操作)
今日内容: 1.字符编码: 人识别的语言与机器识别的语言转化的媒介 ***** 2.字符与字节: 字符占多少字节,字符串转化 *** 3.文件操作: 操作硬盘中的一块区域:读写操作 ...
- Python基础编程:字符编码、数据类型、列表
目录: python简介 字符编码介绍 数据类型 一.Python简介 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心 ...
- Python之路 day2 字符编码及转换
#!/usr/bin/env python # -*- coding:utf-8 -*- #Author:ersa import sys print("sys default encodin ...
- Python基础(变量、字符编码、数据类型)
变量 变量名由字母.数字(不能为首字符).下划线组成,不能使用关键字 以下关键字不能声明为变量名 ['and', 'as', 'assert', 'break', 'class', 'continue ...
- Python 基础篇:字符编码、函数
字符编码 在python2默认编码是ASCII, python3里默认是utf-8 unicode 分为 utf-32(占4个字节),utf-16(占两个字节),utf-8(占1-4个字节), so ...
- Python基础3:字符编码
http://www.jb51.net/article/64917.htm Python 编码为什么那么蛋疼? https://i.cnblogs.com/EditPosts.aspx?postid= ...
- python基础知识3---字符编码
阅读目录 一 了解字符编码的知识储备 二 字符编码介绍 三 字符编码应用之文件编辑器 3.1 文本编辑器之nodpad++ 3.2 文本编辑器之pycharm 3.3 文本编辑器之python解释器 ...
- python之旅:字符编码
一 了解字符编码的知识储备 一 计算机基础知识 知识储备:cpu.内存.硬盘 二 文本编辑器存取文件的原理(nodepad++,pycharm,word) #1.打开编辑器就打开了启动了一个进程,是在 ...
- Java基础-二进制以及字符编码简介
Java基础-二进制以及字符编码简介 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 想必计算机毕业的小伙伴或是从事IT的技术人员都知道数据存储都是以二进制的数字存储到硬盘的.从事开 ...
随机推荐
- Runtime理解
动态语言 OC是一门不折不扣的动态语言,所以它的很多机制都是动态运行时决定的.这点和C语言不一样,C语言是静态绑定,也就是编译后所有的一切都已经决定了.这一点和C语言的函数指针有些类似,很多时候函数指 ...
- SVN与TFS自动同步脚本(很实用)
一直都在园子里看文章,因为各种原因懒得写文章.最近稍得空闲,把这几天的工作成果分享一下. 因为工作需要,开发人员使用Qt进行系统移动端的开发,Qt的版本控制却不提供连接TFS的设置,只有使用svn.没 ...
- x86和i386
x86: 1 9 7 8年6月,I n t e l公司推出了8 0 8 6,一个1 6位微处理器,它可访问的存储空间达到1 M B. Intel x86家族继续发展,1 9 8 5年出现了3 2位的3 ...
- SEO 第十章
SEO第十章 本次课目标: 1. 站外优化方案计划 2. 常见的SEO作弊手段(黑帽) 3. 百度站长平台的使用 4. 网站流量提升和转化率提升 一.站外优化方案计划 友情链接 权重相当.行业 ...
- ldap_modify: No such object (32) matched DN: cn=config
centos 6.9 部署 kerbors ldap 报错 [root@hadoop data]# ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.ld ...
- Python3中的输入输出
input()函数 我们可以通过Python3解释器查看Python3中input()的含义: >>> type(input) <class 'builtin_function ...
- PRJ0003 : Error spawning 'midl.exe'
原因:出现该错误的是由于:C:\Program Files\Microsoft SDKs\Windows\v6.0A midl.exe 和midlc.exe缺失. 解决方法:从别人电脑上拷贝这个两个文 ...
- 1、C编程预备计算机知识
一.数据类型 基本数据类型 1.整数 整形 -- int -- 4 短整型 -- short int -- 2 长整型 -- long int --8 2.浮点数(实数) 单精度浮点数 -- floa ...
- source 1.7 中不支持 lambda 表达式(请使用 -source 8 或更高版本以启用 lambda 表达式)
from:http://blog.csdn.net/qwdafedv/article/details/54691740 https://www.youtube.com/watch?v=oXxijdf8 ...
- Java 编程下 Eclipse/myeclipse 如何设置单行代码显示的最大宽度
http://www.cnblogs.com/sunzn/archive/2013/03/30/2990191.html 或 http://zhidao.baidu.com/link?url=67uy ...