博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bytes、str与unicode
阅读量:6431 次
发布时间:2019-06-23

本文共 809 字,大约阅读时间需要 2 分钟。

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')

转载于:https://www.cnblogs.com/walthwang/p/10326123.html

你可能感兴趣的文章
android jni aotf 错误
查看>>
Azkaban的功能特点(二)
查看>>
[RxJS] Add debug method to Observable in TypeScript
查看>>
1、金融之关于BIAS
查看>>
[转]ASP.NET Core基本原理(11)-管理应用程序状态
查看>>
VS Code搭建.NetCore开发环境(一)
查看>>
01字典树贪心查询+建立+删除(个人模版)
查看>>
java-信息安全(十一)-非对称加密算法ECC以及ECDSA签名
查看>>
(转)Flex的编译过程--ActionScript字节码(ABC)
查看>>
Directory Listing Denied
查看>>
今天讲座的感悟--java
查看>>
o(1)复杂度之双边滤波算法的原理、流程、实现及效果。
查看>>
Logcat多tag过滤
查看>>
corner2
查看>>
我见过的几种类型的员工(转)
查看>>
web前端的十种jquery特效及源码下载
查看>>
poj 3414 Pots (bfs+线索)
查看>>
Binary search
查看>>
http://jingyan.baidu.com/article/08b6a591f0fafc14a9092275.html
查看>>
MySQL查询数据表的Auto_Increment(自增id)
查看>>