bytesstr与unicode
Posted walthwang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bytesstr与unicode相关的知识,希望对你有一定的参考价值。
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‘)
以上是关于bytesstr与unicode的主要内容,如果未能解决你的问题,请参考以下文章
在Tomcat的安装目录下conf目录下的server.xml文件中增加一个xml代码片段,该代码片段中每个属性的含义与用途