python的代码格式,python使用的编码方式
我从来不确定我是否理解字符串/unicode解码和编码之间的区别。
我知道字符串()。解码()用于当您有一个已知具有某种字符编码的字节字符串时,给定编码名称,它将返回一个采用双字节对字符进行编码字符串。
我知道unicode().编码()根据给定的编码名称将采用双字节对字符进行编码字符转换成一个字节字符串。
但是我不明白str()是什么编码()和unicode().解码()用于。有没有人能解释一下,可能的话还能纠正我在上面犯的任何错误?
编辑:
几个答案给出了关于什么的信息编码在字符串上执行,但是似乎没有人知道是什么unicode编码。的解码。
解决方案
采用双字节对字符进行编码字符串的译方法实际上根本没有任何应用(除非出于某种原因采用双字节对字符进行编码字符串中有一些非文本数据——见下文)。我认为这主要是历史原因。在Python 3中,它完全消失了。
unicode().解码()将使用默认(ascii)编解码器对s进行隐式编码。验证如下:
s=u o
解码()
回溯(最近一次呼叫):
文件""中的第一行
zzdzhEncodeError:"ascii "编解码器无法对位置0中的字符u"\ xf6 "进行编码:
序数不在范围内(128)
s。编码(“ascii”)
回溯(最近一次呼叫):
文件""中的第一行
zzdzhEncodeError:"ascii "编解码器无法对位置0中的字符u"\ xf6 "进行编码:
序数不在范围内(128)
错误消息完全相同。
For str().编码()则相反——它尝试用默认编码对s进行隐式解码:
s= o
s。解码(“utf-8”)
u\xf6
编码()
回溯(最近一次呼叫):
文件""中的第一行
zzdzhDecodeError:“ascii”编解码器无法解码位置0处的字节0xc3:
序数不在范围内(128)
这样用,str().编码()也是多余的。
但是后一种方法还有一个有用的应用:有些编码与字符集无关,因此可以有意义地应用于8位字符串:
编码( zip )
不过,你是对的:"编码"在这两个应用程序中的模糊用法是.奥卡德。同样,在Python 3中使用独立的字节和字符串类型,这不再是一个问题。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。