bytes、str与unicode
2024-08-31 12:14:51
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')
最新文章
- Windows Azure Storage 之 Retry Policy (用来处理短暂性错误-Transient Fault)
- 另类分析SIGSEGV信号
- LeetCode----Linked List
- 学习总结relative和absolute
- centos 防火墙配置
- [MacOS] xcrun: error: active developer path (";/Volumes/Xcode/Xcode6-Beta.app/Contents/Developer";) does not exist, use xcode-select to change
- C#3
- HTML 学习笔记
- jAVA EE里什么是链式调用
- 使用 fastlane 实现 iOS 持续集成(转)
- 7 MySQL存储过程和函数
- Ubuntu访问window下的磁盘分区出现“Error mounting /dev/sda5 at/media”错误的解决方法
- csu1804
- Java weak reference
- HTML 鼠标坐标和元素坐标
- Android开发训练之第五章第七节——Transmitting Network Data Using Volley
- redis源码学习-dict
- 从Dying gasp功能看Linux的响应速度(zhuan)
- 奔五的人学ios:swift竟然没有字符串包括,找个简单的解决方法
- ubuntu部署jenkins
热门文章
- UVALive-8072 Keeping On Track 树形dp 联通块之间缺失边的个数
- [spoj] HIGH - Highways (生成树计数)
- Linux下安装Solr7.5.0,并部署到Tomcat
- LAMP 环境搭建备忘 -- Linux的安装(一)
- jQuery判断浏览器类型和版本
- YAML说明
- c++变量的作用域、生存期和可见性
- 我是怎么从项目中的lib加JAR更换为maven管理的
- Python爬糗百热门20条并邮件分发+wxPython简易GUI+py2app转成可运行文件
- hpuoj--1287--HH实习(斐波那契数巧用)