识别字节字符串

时间:2014-11-07 14:42:10

标签: python arrays unicode ascii

我试图找出是否可以识别字节数组中的不同字符串。让我详细说明一下,例如:

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'格式化的字符串。用眼睛很容易识别阵列中的不同字符串。

libgcj-13.dll followed by a Null terminator - Ascii
_Jv_registerclasses followed by a Null terminator - Ascii
unhandled vlc exception followed by a Null terminator -Ascii
w, css=UTF-8 followed by a Null terminator - Unicode

现在,当我每个字节读取字节数组时问题就出现了。在我到达第一个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读取所以我不会将它们读作Null终结符而是作为Unicode字符。现在我的问题是有办法检测到这个吗?或者解决这个问题呢?

希望我解释得很清楚, 与种类问候

0 个答案:

没有答案