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的技术人员都知道数据存储都是以二进制的数字存储到硬盘的.从事开 ...
随机推荐
- DLL入门浅析【转】
1.建立DLL动态库 动态链接库(DLL)是从C语言函数库和Pascal库单元的概念发展而来的.所有的C语言标准库函数都存放在某一函数库中.在链接应用程序的过程中,链接器从库文件中拷贝程序调用的函数 ...
- [转] Figuring out why my SVCHOST.EXE is at 100% CPU without complicated tools in Windows 7
(转自:Figuring out why my SVCHOST.EXE is at 100% CPU without complicated tools in Windows 7 - Scott Ha ...
- MYSQL 二次筛选,统计,最大值,最小值,分组,靠拢
HAVING 筛选后再 筛选 SELECT CLASS,SUM(TOTAL_SCORES) FROM student_score GROUP BY CLASS HAVING SUM(TOTAL_SCO ...
- dnskeygen - 针对DNS安全性所生成的公共,私有和共享的密钥
SYNOPSIS(总览) dnskeygen [- [DHR ] size ] [-F ] -[zhu ] [-a ] [-c ] [-p num ] [-s num ] -n name DESCRI ...
- tomcat 虚拟目录配置
1.虚拟目录优点 原始 拷贝到webapps下,然后启动tomcat,就可以访问webapps下的项目.eclipse配置tomcat的原理也是这种方式. 虚拟目录 定位到eclipse工作目录下,实 ...
- New Arrival MB SD Connect Compact 5 (MB SD C4) Star Diagnosis
MB SD Connect Compact 5 has same function as SD C4 but with new design, support both cars and trucks ...
- C++虚析构函数的使用
如果,你设计的程序里,释放对象实例的时候,有“使用某个基类的指针,来释放它指向的派生类的实例”这种用法出现的话,那么,这个基类的destructor就应该设计成virtual的. 如果,基类不是vir ...
- PHP18 PHP与AJAX
学习要点 JavaScript实现Ajax jQuery实现Ajax JSON PHP的JSON函数 JavaScript处理JSON数据 JavaScript实现Ajax 什么是Ajax 搜狗地图 ...
- c:if标签--判断不为空和其他的值判断
用<c:if test=""></c:if>标签时 <c:if test="${sl.chc_status==1 }"> ...
- 线程的start和run方法的区别
回到这个问题,可以用源码的角度去回答,这样会让面试官对有更好的印象 ------>如果直接调用run方法的话,所执行的线程是main线程.调用start方法的话,会新建一个子线程,去执行run方 ...