[英]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.