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