[英]python encoding and decoding
我从一本书中找到了一段文字,内容如下:
在Python 3.X中,普通的
str
字符串处理Unicode文本(包括ASCII,它只是一种简单的Unicode); 不同的bytes
字符串类型表示原始字节值(包括媒体和编码文本); 和 2.X Unicode 文字在 3.3 及更高版本中受支持以实现 2.X 兼容性(它们被视为与普通 3.Xstr
字符串相同)。
问题:什么是 2.X Unicode 文字?
在 Python 2.X 中,普通的
str
字符串处理 8 位字符串(包括 ASCII 文本)和原始字节值; 不同的unicode
字符串类型表示 Unicode 文本; 和 3.X 字节文字在 2.6 及更高版本中受支持以实现 3.X 兼容性(它们被视为与普通 2.Xstr
字符串相同):
问题:什么是 3.X 字节文字?
它说在 Python 2 中,字符串默认不是 Unicode,它们是简单的老式 8 位字符 ASCII/ANSI。 所以如果你想在你的源代码中把一个常量字符串放在引号中(这是字面意思)并让它 Python 2 将它解释为 Unicode 字符串,而不是 ASCII,那么你必须在它前面放一个“u”明确声明。
Python 2.7.18 (default, Aug 4 2020, 11:16:42)
>>> type("hello")
<type 'str'>
>>> type(u"hello")
<type 'unicode'>
>>>
在 Python 3 中,str class始终为 Unicode,因此您可以根据需要添加“u”,但这没有任何区别; 无论如何,所有字符串都是 Unicode。 Python 3 允许使用“u”语法只是为了避免破坏使用它的旧脚本。
Python 3.8.5 (default, Jul 28 2020, 12:59:40)
>>> type("hello")
<class 'str'>
>>> type(u"hello")
<class 'str'>
>>>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.