python3中的编码
python2字符串编码存在的问题:
- 使用 ASCII 码作为默认编码方式,对中文处理不友好
- 把字符串分为 unicode 和 str 两种类型,将unicode作为唯一内码,误导开发者
python3中默认编码方式修改为utf-8。
在存储和显示上,python3使用文本字符和二进制数据进行区分,更加明确和清晰。
文本字符使用str类型表示,str 能表示 Unicode 字符集中所有字符,而二进制数据使用bytes类型表示。
str与bytes之间的转换
一种方式
# bytes object
b = b"example"
# str object
s = "example"
# str to bytes
bytes(s, encoding = "utf8")
# bytes to str
str(b, encoding = "utf-8")
另一种方式,默认使用utf-8.
# bytes object
b = b"example"
# str object
s = "example"
# an alternative method
# str to bytes
str.encode(s)
# bytes to str
bytes.decode(b)
常见错误
auth = base64.b64encode("%s:%s" % (user, passwd))
File "/Users/.venv/lib/python3.6/base64.py", line 58, in b64encode
encoded = binascii.b2a_base64(s, newline=False)
TypeError: <work at 0x104cb4518>: a bytes-like object is required, not 'str'
make: *** [work] Error 1
出现这种错误是由于str和bytes使用搞混,按照上面介绍的方式进行正确编解码即可。
python3中的编码的更多相关文章
- python3中的编码与解码(超好理解)
编码和解码是针对数据而言的,数据能干什么呢?无非就是用来显示,储存和传输的: 储存和传输数据当然是希望数据越小越好,所以发明了utf-8这种数据编码显示:它智能将英文用一个字节表示,欧洲的字符用两个字 ...
- 转 python3中SQLLIT编码与解码之Unicode与bytes
#########sample########## sqlite3.OperationalError: Could not decode to UTF-8 column 'logtype' with ...
- python基础之六:编码简介以及python3中的编码
1.常见的四种编码方式的编码过程: ascii A : 00000010 8位 一个字节 unicode A : 00000000 00000001 00000010 00000100 32位 四个字 ...
- 在python3中的编码
在python3中的编码 #_author:Administrator#date:2019/10/29import sysprint(sys.getdefaultencoding())#utf-8 打 ...
- Python3中的编码问题
编码方式介绍 我们首先来熟悉一下常见的一些编码方式,按照时间轴来划分,共有以下几种编码方式(常见): ASCII编码方式:对127个常见字符进行编码,其中包含了10个阿拉伯数字,共52个大小写英文字母 ...
- 一篇文章助你理解Python3中字符串编码问题
前几天给大家介绍了unicode编码和utf-8编码的理论知识,以及Python2中字符串编码问题,没来得及上车的小伙伴们可以戳这篇文章:浅谈unicode编码和utf-8编码的关系和一篇文章助你理解 ...
- python2和python3中的编码问题
开始拾起python,准备使用python3, 造轮子的过程中遇到了编码的问题,又看了一下python3和python2相比变化的部分. 首先说个概念: unicode:在本文中表示用4byte表示的 ...
- python3中的编码与解码用法
#!/usr/bin/env python3 # -*- coding: utf-8 -*- __author__ = '人生入戏' #python3在编码时会把str编码成utf-8的bytes类型 ...
- python3中编码与解码的问题
python3中编码与解码的问题 ASCII .Unicode.UTF-8 ASCII 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两种状态,因此 ...
随机推荐
- Appium Desktop-Permission to start activity denied.
可能情况1:activity查找错误 如何查找activity (1)确保手机和电脑已连接 adb devices (2)确保在你手机上,要测试的包启动着 (3)dos运行:adb shell d ...
- Phonics 自然拼读法 s,a,t,i,p,n Teacher:Lamb
# 音节(syllables)拆分 # 拆分练习 # LIoyd 分类法——“七步决” # 元音拆词法 # s,a,t,i,p,n S A T I P N # 自然拼音拼读练习表 a mat ...
- ranch 源码分析(一)
以前写了一个ranch的处理流程,http://www.cnblogs.com/tudou008/p/5197314.html ,就只有一张图,不是很清晰,现在有空做个源码分析. ranch的源码(版 ...
- CentOS安装vmtools后 共享文件不能显示的问题
摘要:以 下这些方法都是我转自网上的一些比较靠谱的方法,但是大多都是针对ununtu的,特别是针对共享文件挂载的相应处理方法.所以在这里,我主要是这对 centos不能显示共享文件的问题做了重点的介绍 ...
- HTML中引用外部JS文件失效原因
今天在练习中碰到“引用外部的一个js文件但是却失效”的情况,实在不懂,百度后才知是引用的位置不对,错误的代码如下: <head> <meta charset="UTF-8& ...
- [cf div 2 706E] Working routine
[cf div 2 706E] Working routine Vasiliy finally got to work, where there is a huge amount of tasks w ...
- Delegate, NSNotification, KVO, Block
delegate: 当我们第一次编写iOS应用时,我们注意到不断的在使用“delegate”,并且贯穿于整个SDK.delegation模式不是iOS特有的模式,而是依赖与你过去拥有的编程背景.针对它 ...
- Chained Exceptions in Java
1. Overview In this article, we’ll have a very brief look at what Exception is and go in depth about ...
- 为什么会出现container、injection技术?发展历史及未来发展趋势
container 原因: 随着软件开发的发展,相比于早期的集中式应用部署方式,现在的应用基本都是采用分布式的部署方式,一个应用可能包含多种服务或多个模块,因此多种服务可能部署在多种环境中,如虚拟服务 ...
- two week summary
from collections import Iteratorfrom collections import Iterabl dic = {'a':"a","91a&q ...