繁体   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