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的技术人员都知道数据存储都是以二进制的数字存储到硬盘的.从事开 ...
随机推荐
- zabbix显示中文
- 消息中间件与RPC的区别
消息中间件和消息通信与RPC各自具有怎样的优势,如何互补消息中间件主要实现的是异步.弹性消息以及队列,弹性消息有时可以借助于外存从而一定程度上可以实现峰值缓存,有效均衡服务器端压力,同时消息可以进行一 ...
- SVN与TFS自动同步脚本(很实用)
一直都在园子里看文章,因为各种原因懒得写文章.最近稍得空闲,把这几天的工作成果分享一下. 因为工作需要,开发人员使用Qt进行系统移动端的开发,Qt的版本控制却不提供连接TFS的设置,只有使用svn.没 ...
- js图片轮播效果常见的产品无缝轮播
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- Winform用Post方式打开IE
1.主要实现Code void OpenNewIe(string url, string postData)///url是要post的网址,postData是要传入的参数 { if (ie != nu ...
- DROP USER - 删除一个数据库用户帐号
SYNOPSIS DROP USER name DESCRIPTION 描述 DROP USER 从数据库中删除指定的用户. 它不删除数据库里此用户所有的表,视图或其他对象. 如果该用户拥有任何数据库 ...
- Xcode导入第三方库图文
Three20这个与facebook亲戚的开源库是蜚声iPhone开发界,很多App都有它的影子,主要是其真得是功能强大.那么如何将Three20库添加到自己的项目中应用呢?一种是Python命令方式 ...
- AHOI2014/JSOI2014 奇怪的计算器
题目描述 题解: 考虑到经过一系列变化后小数不可能比大数大,我们可以用线段树维护区间修改. 重点是,每个节点都可以通过$a[i]=a[i]*t1+a0[i]*t2+t3$这个函数来表示,我们就可以把三 ...
- PHP中GD库函数
画椭圆弧 imagearc($image,$cx,$cy,$width,$height,$angel1,$angel2,$color) 注释:$image 图像资源 $cx 椭圆中心点的水平位置 ...
- java 自动拆箱 自动装箱
自动装箱的定义就是 基本数据类型赋值给包装类型, 拆箱则相反. Integer integer = 122; // 自动装箱 int num = integer; //自动拆箱 想看一下源码是怎么 ...