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的技术人员都知道数据存储都是以二进制的数字存储到硬盘的.从事开 ...
随机推荐
- IOS之pageControl
用户点击页面控件,会触发UIControlEventValueChanged事件,并启动设置为控件动作的任何方法.可以通过调用currentPage查询控件的新值,并通过调整numberOfPages ...
- JAVA之NIO按行读取大文件
做项目过程中遇到要解析100多M的TXT文件,并入库.用之前的FileInputStream.BufferedReader显然不行了,虽然readLine这方法可以直接按行读取,但是去读一个140M左 ...
- 项目中非常有用并且常见的ES6语法
今天闲着无事,梳理下ES6常见的语法知识点:除此之外的知识点自行细化和梳理! <!DOCTYPE html> <html> <head> <meta char ...
- 在Apache服务器中禁用option
在apache禁止 http OPTIONS方法. apache disable http OPTIONS method 2013-04-17 09:27 4050人阅读 评论(1) 收藏 举报 分 ...
- Elasticsearch搜索含有数字标签的处理
{"tag_id":“12345”} 在search的时候是完全匹配,因为Elasticsearch在处理这个的过程中把“123456”字符当成一个整体的数据,因此折腾了好久就是找 ...
- SQLite概述
SQLite概述 这个教程帮助您理解SQLite是什么,它如何不同于SQL,为什么它是必要的和它的方式处理应用程序数据库. SQLite是一个库,实现了一个独立的软件,serverless zer ...
- HashSet LinkedHashSet TreeSet 分析
1.HashSet分析 hashset 底层是hash表,就是hashMap,是无序的,唯一的.也就是说,它的底层其实就是一个HashMap key 值的组成值.所以具有唯一性. public Ha ...
- Django 路由 —— Djangon如何处理一个请求
Django URL路由概述 一个干净优雅的URL方案是高质量Web应用程序中的一个重要细则Django可以让你设计URL,无论你想要什么,没有框剪限制要为应用程序设计URL,您可以非正式地创建一个名 ...
- 在Vue中遇到的各种坑 及性能提升
Vue: (1) 没有再模板里引用data数据,会不会引起update.beforeUpdate生命周期函数的执行? 不会 (2)组件改成异步 (3)v-once (4)如果不用template ...
- c++调用com口操作autocad
#include "stdafx.h" #include <atlcomcli.h> #import "D:\\C++test\\FirstCom\\Rele ...