加入收藏 | 设为首页 | 会员中心 | 我要投稿 吉安站长网 (https://www.0796zz.com.cn/)- 科技、图像处理、媒体智能、办公协同、操作系统!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

了解bytes与str的区别

发布时间:2021-03-25 12:27:07 所属栏目:外闻 来源:互联网
导读:家一定要记住:str实例不一定非要用某一种固定的方案编码成二进制数据,bytes实例也不一定非要按照某一种固定的方案解码成字符串。 要把Unicode数据转换成二进制数据,必须调用str的encode方法。 要把二进制数据转换成Unicode数据,必须调用bytes的decode方

家一定要记住:str实例不一定非要用某一种固定的方案编码成二进制数据,bytes实例也不一定非要按照某一种固定的方案解码成字符串。

  • 要把Unicode数据转换成二进制数据,必须调用str的encode方法。
  • 要把二进制数据转换成Unicode数据,必须调用bytes的decode方法。

调用这些方法的时候,可以明确指出自己要使用的编码方案,也可以采用系统默认的方案,通常是指UTF-8(但有时也不一定,下面就会讲到这个问题)。

编写Python程序的时候,一定要把解码和编码操作放在界面最外层来做,让程序的核心部分可以使用Unicode数据来运作,这种办法通常叫作Unicode三明治(Unicode sandwich)。程序的核心部分,应该用str类型来表示Unicode数据,并且不要锁定到某种字符编码上面。

这样可以让程序接受许多种文本编码(例如Latin-1、Shift JIS及Big5),并把它们都转化成Unicode,也能保证输出的文本信息都是用同一种标准(最好是UTF-8)编码的。

两种不同的字符类型与Python中两种常见的使用情况相对应:

  • 开发者需要操作原始的8位值序列,序列里面的这些8位值合起来表示一个应该按UTF-8或其他标准编码的字符串。
  • 开发者需要操作通用的Unicode字符串,而不是操作某种特定编码的字符串。

我们通常需要编写两个辅助函数(helper function),以便在这两种情况之间转换,确保输入值类型符合开发者的预期形式。

第一个辅助函数接受bytes或str实例,并返回str:

(编辑:吉安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读