簡體   English   中英

如何在Python中讀取二進制字符串

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM