识别字节串

2024-09-29 01:24:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道是否可以识别字节数组中的不同字符串。例如,让我详细说明:

b'libgcj-13.dll\x00_Jv_RegisterClasses\x00\x00\x00unhandled vlc exception\n\x00\x00w\x00,\x00 \x00c\x00c\x00s\x00=\x00U\x00T\x00F\x00-\x008\x00\x00\x00\nerror while opening file\x00\x00\x00[\x00v\x00e\x00r\x00s\x00i\x00o\x00n\x00]\x00\n\x00O\x00S\x00=\x00%\x00d\x00.\x00%\x00'

这只是一个很小的部分,但由于明显的原因,我将只张贴一小部分。除了字节数组之外,我使用的是“ascii”或“unicode”格式的字符串。用眼睛很容易识别数组中的不同字符串。

^{pr2}$

现在,当我读取每个字节的字节数组时,问题就开始了。在我到达第一个Unicode字符串之前,前3个字符串不会产生任何问题。当我读取每个字节时,我收到“\x00w”作为“\x00”和“w”分开。“\x00”不是空终止符,而是“\x00w”的一部分。下面的列表稍微清楚了一点:

b'\x00', b'\x00', b'w', b'\x00', b',', b'\x00', b' ', b'\x00', b'c', b'\x00', b'c', b'\x00', b's', b'\x00', b'=', b'\x00', b'U', b'\x00', b'T', b'\x00', b'F', b'\x00', b'-', b'\x00', b'8', b'\x00'

从我接收到的Unicode字符开始,我应该每2个字节而不是1个字节来读取,所以我不会将它们作为空终止符来读取,而是作为Unicode字符来读取。现在我的问题是,有没有一种方法可以检测到这一点?或者解决这个问题?

希望我解释得足够好, 谨致问候


Tags: 字符串字节unicode数组字符dllvlcx00