1、如果没有设置字符串编码格式,那么将采用系统默认编码格式

name = 'laogaoyang' # 采用系统默认编码格式
nameBytes = name.encode('utf-8') # 先将 name 解码(采用系统默认格式),然后用 'utf-8' 编码
nameStr = nameBytes.decode('utf-8') # 用什么格式编码就需要用同样格式去解码,否则出错

说明:
name.encode('utf-8')  此处将 name 重新编码为 'utf-8',要重新编码首先要解码,此处并没有指明解码方式,那么将采用系统的默认解码格式(编解码格式相同,不会出错)

2、主动设置字符串编码格式为 'utf-8',假设系统编解码格式为 'ascii'

# -*- coding: utf-8 -*-
name = 'laogaoyang' # 采用指定的编码格式 'utf-8'
nameBytes = name.encode('utf-8') # 这里出错了

说明:
上一个例子编码成 'utf-8' 是正常的,因为编解码格式相同
此处编码采用 'utf-8'格式,并没有指明解码方式,那么将采用系统的默认解码格式(即 'ascii', 编解码格式不相同,出错),修正方法有两种,如下所示

明确指定解码格式
# -*- coding: utf-8 -*-
name = 'laogaoyang' # 采用指定的编码格式为 'utf-8'
nameBytes = name.decode('utf-8').encode('utf-8')
修改默认解码格式
# -*- coding: utf-8 -*-
import sys
sys.setdefaultencoding('utf-8')
name = 'laogaoyang' # 采用指定的编码格式 'utf-8'
nameBytes = name.encode('utf-8')

python 字节与字符串转换的更多相关文章

  1. python 数字和字符串转换问题

    一.python中字符串转换成数字 (1)import string tt='555' ts=string.atoi(tt) ts即为tt转换成的数字 转换为浮点数 string.atof(tt) ( ...

  2. python :eval将字符串转换成字典

    #将字符串打印成字典 b=''' {'record': {'weight':20,'server':'100.1.7.9','maxconn':50},'backend': 'www.oldboy.o ...

  3. python 字节与字符串转化

    name = 'laogaoyang' # 采用系统默认编码格式 nameBytes = name.encode('utf-8') # 先将 name 解码(采用系统默认格式),然后用 'utf-8' ...

  4. Python 字节与字符串的转换

    html = urlopen("http://www.cnblogs.com/ryanzheng/p/9665224.html") bsObj = BeautifulSoup(ht ...

  5. python学习之字符串转换

    配置环境:python 3.6   python编辑器:pycharm 代码如下: #!/usr/bin/env python #-*- coding: utf-8 -*- def strCase() ...

  6. python UTC,时间戳,字符串转换

    #!/usr/bin/env python #_*_coding:utf-8_*_ # 本地时间 转换 为时间戳 import time import pytz import datetime dat ...

  7. 字符编码 and 字节和字符串转换(待补充)

    ascii用一个字节(8位二进制)代表一个字符 Unicode常用2个字节(16位二进制)代表一个字符,生僻字需要用四个字节 汉字中已经超出了ASCII编码的范围,用Unicode, Unicode兼 ...

  8. python 基础 列表 字符串转换

    1. 字符串转列表 str1 = "hi hello world" print(str1.split(" "))输出:['hi', 'hello', 'worl ...

  9. python中字节与字符串的转换

    #bytes object    byte = b"byte example"     # str object    str = "str example" ...

随机推荐

  1. socket编程--socket模块介绍

    socket也称作'套接字,用于描述IP地址和端口,是一个通信的终点. socket起源于Unix,而Unix/Linux基本哲学之一就是"一切皆文件",对于文件用[打开][读写] ...

  2. jpa datasource config

    application.properties spring.datasource.driverClassName= spring.datasource.url= spring.datasource.u ...

  3. 《零成本实现Web性能测试:基于Apache JMeter》读书笔记

    1.性能测试概念 性能测试目的: 评估系统能力,验证系统是否符合预期性能指标 识别系统中的弱点 系统调优,改进系统性能 检测长时间运行可能发生的问题,揭示隐含问题 验证稳定性.可靠性 常见性能指标 B ...

  4. Java——Swing事件处理

    import java.awt.event.WindowEvent; import java.awt.event.WindowListener; import javax.swing.JFrame; ...

  5. JStorm集群的安装和使用

    0 JStorm概述 JStorm是一个分布式的实时计算引擎.从应用的角度,JStorm应用是一种遵守某种编程规范的分布式应用:从系统角度, JStorm是一套类似MapReduce的调度系统: 从数 ...

  6. 《深入理解bootstrap》读书笔记:第二章 整体架构

    一.  整体架构   1. CSS-12栅格系统 把网页宽度均分为12等分(保留15位精度)--这是bootstrap的核心功能. 2.基础布局组件 包括排版.按钮.表格.布局.表单等等. 3.jQu ...

  7. Ad-Hoc命令不熟悉的选项

    -f #并发线程数,默认5个线程 --private-key #指定秘钥文件 -k #--ask-pass SSH:认证密码 -K, #--ask-sudo-pass sudo:用户的密码(--sud ...

  8. Python 系列:1 - Tuples and Sequences

    5.3 Tuples and Sequences We saw that lists and strings have many common properties, e.g., indexing a ...

  9. 2012 Theory for Forward Rendering

    http://miss-cache.blogspot.com/2012/08/lighting-transparent-surfaces-with_26.html http://aras-p.info ...

  10. php上传$_FILES 无法取值

    无法取值的主要原因在form. 代码 <form method="post" action="****" name="theForm" ...