1、Python3字符序列的类型

  bytes -> 原始的8位值(既字节)

  str -> Unicode字符

2、Python2字符序列的类型

  str -> 原始的8位值(既字节)

  unicode -> Unicode字符

即Python3的bytes对应Python2的str,而Python3的str对应Python2的unicode

写代码的时候不要对字符编码做任何的假设。

编写两个辅助函数来进行转换。

接受str或bytes,总是返回str:

def to_str(bytes_or_str):
if isinstance(bytes_or_str, bytes):
value = bytes_or_str.decode('utf-8')
else:
value = bytes_or_str
return value

接受str或bytes,并总是返回bytes:

def to_bytes(bytes_or_str):
if isinstance(bytes_or_str, str):
value = bytes_or_str.encode('utf-8')
else:
value = bytes_or_str
return value

3、在Python3中通过内置的open函数获取文件句柄会默认使用utf-8编码格式来操作文件

如果要写入二进制数据,把encoding参数设为b

按下面的方式来使用open函数

with open('path/filename', 'wb') as f:
do something

(读取文件的时候也会有同样的问题,这时候使用‘rb')

最新文章

  1. Windows Azure Storage 之 Retry Policy (用来处理短暂性错误-Transient Fault)
  2. 另类分析SIGSEGV信号
  3. LeetCode----Linked List
  4. 学习总结relative和absolute
  5. centos 防火墙配置
  6. [MacOS] xcrun: error: active developer path ("/Volumes/Xcode/Xcode6-Beta.app/Contents/Developer") does not exist, use xcode-select to change
  7. C#3
  8. HTML 学习笔记
  9. jAVA EE里什么是链式调用
  10. 使用 fastlane 实现 iOS 持续集成(转)
  11. 7 MySQL存储过程和函数
  12. Ubuntu访问window下的磁盘分区出现“Error mounting /dev/sda5 at/media”错误的解决方法
  13. csu1804
  14. Java weak reference
  15. HTML 鼠标坐标和元素坐标
  16. Android开发训练之第五章第七节——Transmitting Network Data Using Volley
  17. redis源码学习-dict
  18. 从Dying gasp功能看Linux的响应速度(zhuan)
  19. 奔五的人学ios:swift竟然没有字符串包括,找个简单的解决方法
  20. ubuntu部署jenkins

热门文章

  1. UVALive-8072 Keeping On Track 树形dp 联通块之间缺失边的个数
  2. [spoj] HIGH - Highways (生成树计数)
  3. Linux下安装Solr7.5.0,并部署到Tomcat
  4. LAMP 环境搭建备忘 -- Linux的安装(一)
  5. jQuery判断浏览器类型和版本
  6. YAML说明
  7. c++变量的作用域、生存期和可见性
  8. 我是怎么从项目中的lib加JAR更换为maven管理的
  9. Python爬糗百热门20条并邮件分发+wxPython简易GUI+py2app转成可运行文件
  10. hpuoj--1287--HH实习(斐波那契数巧用)