[英]How to read binary strings in Python
我想知道如何在Python中給出字符串的二進制編碼。
例如,
>>> b'\x25'
b'%'
要么
>>>b'\xe2\x82\xac'.decode()
'€'
但
>>> b'\xy9'
File "<stdin>", line 1
SyntaxError: (value error) invalid \x escape at position 0
請您解釋一下\\xe2
代表什么以及這種二進制編碼是如何工作的。
\\x
用於引入十六進制值,並且必須緊隨其后的是兩個十六進制數字。 例如, \\xe2
表示字節(十進制)226(= 14 * 16 + 2)。
在第一種情況下,兩個字符串b'\\x25'
和b'%'
是相同的; Python盡可能使用ASCII等效項顯示值。
我假設您使用的是Python 3版本。 在Python 3中,默認編碼為UTF-8 ,因此b'\\xe2\\x82\\xac'.decode()
實際上是b'\\xe2\\x82\\xac'.decode('UTF-8)
。
它給出字符'€'
,即Unicode中的U + 20AC,而U + 20AC的UTF8編碼的確是3個字節的“ b” \\ xe2 \\ x82 \\ xac。
因此,所有ascii字符(低於128的代碼)都被編碼為一個字節,其值與unicode代碼相同。 與一個單一的16位unicode值相對應的非ascii字符被utf8編碼為2或3個字節(這被稱為Basic Multilingual Plane )。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.