Python3 encode()方法


描述

encode() 方法以指定的编码格式编码字符串。errors参数可以指定不同的错误处理方案。

语法

encode()方法语法:

str.encode(encoding='UTF-8',errors='strict')

参数

  • encoding -- 要使用的编码,如: UTF-8。
  • errors -- 设置不同错误的处理方案。默认为 'strict',意为编码错误引起一个UnicodeError。 其他可能得值有 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 以及通过 codecs.register_error() 注册的任何值。

返回值

该方法返回编码后的字符串,它是一个 bytes 对象。

实例

以下实例展示了encode()方法的实例:

实例(Python 3.0+)

#!/usr/bin/python3 str = "菜鸟教程"; str_utf8 = str.encode("UTF-8") str_gbk = str.encode("GBK") print(str) print("UTF-8 编码:", str_utf8) print("GBK 编码:", str_gbk) print("UTF-8 解码:", str_utf8.decode('UTF-8','strict')) print("GBK 解码:", str_gbk.decode('GBK','strict'))

以上实例输出结果如下:

菜鸟教程
UTF-8 编码: b'\xe8\x8f\x9c\xe9\xb8\x9f\xe6\x95\x99\xe7\xa8\x8b'
GBK 编码: b'\xb2\xcb\xc4\xf1\xbd\xcc\xb3\xcc'
UTF-8 解码: 菜鸟教程
GBK 解码: 菜鸟教程

python3中encode和decode跟python2还是有一定的区别的,在python3中: 

 encode(编码):按照某种规则将“文本”转换为“字节流”。  python 3中表示:unicode变成str

decode(解码):将“字节流”按照某种规则转换成“文本”。   python3中表示:str变成unicode

字符串在Python内部的表示是Unicode编码,因此在做编码转换时,通常需要以Unicode作为中间编码,即先将其他编码的字符串解码(decode)成Unicode,再从Unicode编码(encode)成另一种编码。

  u代表Unicode类型,s代表str类型

  u.encode('...'):只要你填写了正确的编码,基本上总是能成功的。就像任何文件都可以压缩成zip文件。

  u.decode('...'):没有任何意义,因为decode是将str转为unicode编码,而u本身就是unicode编码的。

  s.encode('...'):在python 3中,将产生一个编码后的byte类型的字符串(这里有点像Python 2.x中的str),byte类型的字符串是支持解码操作的。

  s.decode('...'):运行都会出错。因为python 3中的str类型对象有点像Python 2中的unicode, 而decode是将str转为unicode编码,所以str仅有一个encode方法,调用这个方法后将产生一个编码后的byte类型的字符。

按照上述规则对一般的字符编码解码可以基本解决,同时如果还有一些困惑可以百科一下Unicode,gbk等常用编码格式,了解一下他们的区别和编码原理。

python3默认编码为unicode,由str类型进行表示。二进制数据使用byte类型表示 
字符串通过编码转换成字节码,字节码通过解码成为字符串 
encode:str –> bytes 
decode:bytes – > str 
直接上代码:

import sys
print("print1:",sys.getdefaultencoding())
name ="中国"
name = name.encode("utf-8")
print("print2:",type(name))
name = name.decode("utf-8")
name = name.encode("gbk")
print("print4:",type(name))
1
2
3
4
5
6
7
8
结果: 
 
分析:

python3默认的编码是unicode,utf-8可以看做是unicode的一个扩展集。
gbk在python中可直接转换成为utf-8,如print4所示,参考网址: 
https://www.cnblogs.com/2017Python/articles/6569750.html
字符串转换成字节(encode):

s1  = "中国"
//法1:
s1 = s1.encode('utf-8')

//方2:,缺省也是可以滴
s1 = s1.encode()

//方3:
s1 = s1.encode(encoding='utf-8')

//法4:我对此语句的理解是,现在用bytes(s1,encoding='utf-8')这个方法转换成字符节。原先是按照utf-8进行编码,
s1 =  bytes(s1, encoding='utf-8')

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
字节转换成字符串(decode):

s1 = "中国"
s1 = s1.encode("utf-8")

//法1:现在的s1是字节类型
str = s1.decode('utf-8')

//法2:其中1是二进制类型,我对此语句的理解是,现在用str(bytes,encoding='utf-8')这个方法转换成字符串。按照utf-8进行编码,
str1 = str(s1, encoding='utf-8')

python的编码 encode相关推荐

  1. Python字符编码转换Unicode和str

    参考链接1:https://blog.csdn.net/VictoriaW/article/details/75314737 参考链接2:https://blog.csdn.net/sheldonwo ...

  2. Python编码encode()与解码decode()介绍与示例演示

    1.编码与解码介绍 位:计算机最小的单位 二进制中的一位 用二进制的 0/1表示. 字节:八位组成一个字节. 字符:我们肉眼可见的文字与符号. 字符集:字符的集合. 编码:将字符转换成计算机可识别的0 ...

  3. python 字符编码问题

    字符编码 一.字符编码的演进 ASCII GB2312    GBK1.0    GB18030 Unicode编码:国际标准字符集,它将世界各种语言的每个字符定义一个唯一的编码,以满足跨语言.跨平台 ...

  4. Python字符编码详解

    Python字符编码详解 转自http://www.cnblogs.com/huxi/archive/2010/12/05/1897271.html Python字符编码详解 本文简单介绍了各种常用的 ...

  5. python字符编码讲解_python 字符编码讲解

    ASCII控制字符  Unicode编码 ASCII(American Standard Code for Information Interchange,美国信息互换标准代码,ASCⅡ)是基于拉丁字 ...

  6. Python字符串编码坑彻底详细解决 何梁

    所以不同编码的str对象可以先解码(decode)成unicode 再编码(encode)成其他编码的str对象. 真正完全搞清楚Python的编码问题 我想大家经常被Python的编码问题搞的晕头转 ...

  7. python UnicodeEncodeError 编码错误总结

    从外部写入字符串 查看python默认编码 >>>import sys >>>sys.getdefaultencoding()#'utf-8' python3 是默 ...

  8. 深入理解Python字符编码--转

    http://blog.51cto.com/9478652/2057896 不论你是有着多年经验的 Python 老司机还是刚入门 Python 不久,你一定遇到过UnicodeEncodeError ...

  9. python安全编码问题_浅谈Python中的编码问题

    对于Python的初学者来说,编码问题相当令人头疼.本文就根据我在学习过程中遇到的问题简单谈一下Python中的编码.首先简单介绍一下几种常见的编码. 一.几种常见的字符编码 ASCII码 ASCII ...

  10. python字符编码在哪里_快速入手Python字符编码

    前言 对于很多接触python的人而言,字符的处理和语言整体的温顺可靠相比显得格外桀骜不驯难以驾驭. 文章针对Python 2.7,主要因为3对的编码已经有了很大的改善并且实际原理一样,更改一下操作命 ...

最新文章

  1. Java 过一下基础
  2. 百亿级数据分表后怎么分页查询?
  3. WCF 入门之旅(4): 怎样用客户端调用WCF服务
  4. ptmalloc内存分配释放
  5. 东明县计算机学校,东明县职业中等专业学校2021年招生信息
  6. SpringBoot使用Mina框架进行服务端与客户端数据通信
  7. matlab中-psi_建议收藏 | 生物信息学中的可变剪切,这些内容你了解吗?
  8. python写web自动化_jenkins+selenium+python实现web自动化测试
  9. 为什么ES模块比CommonJS更好?
  10. 最简单的视音频播放示例2:GDI播放YUV, RGB
  11. js 文件上传 图片上传 传输速度计算
  12. IntelliJ IDEA For Mac 快捷键大全
  13. iconfont图标使用方法
  14. 云呐|国有资产管理信息系统,资产管理信息系统功能描述
  15. ArcBlock 分享 | 冒志鸿:我为区块链技术落地“狂”!
  16. jbpm创建流程图_JBPM流程图不显示
  17. 中北大学计算机面试题,【面试经验分享】航天类
  18. python制作网络社交图
  19. Spark Broadcast内幕解密
  20. Dynread微信商城源码(二开利器)

热门文章

  1. PQ分区魔术师调整硬盘分区大小
  2. Rhino4.0软件安装教程
  3. unity怎么显示骨骼_Unity3d教程:骨骼动画介绍
  4. 雨林木风 ghost win7 纯净版系统下载
  5. excel与access结合运用_如何在EXCEL与ACCESS之间建立关联
  6. Ubuntu桌面美化教程
  7. java document对象详解
  8. CoffeeRobotTeam项目组报告
  9. 【数据库 第n次与MySQL较劲】记录一个据说有初雪的夜晚的breakdown point
  10. Mac苹果电脑总是自动重启?怎么解决自动重启问题