是否可以在JavaScript中检测二进制数据?
我希望能够检测二进制数据并将其转换为十六进制,以便于阅读/调试。
经过更多调查后,我意识到检测二进制数据不是正确的问题,因为二进制数据可以包含常规字符和不可打印的字符。
Outis的问题和答案(/ [\ x00- \ x1F] /)是我们在尝试检测二进制字符时所能做的最好的事情。
注意:您必须从ascii字符串序列中删除换行符和可能的其他字符,以便检查实际工作。
答案 0 :(得分:21)
如果用“二进制”表示“包含不可打印的字符”,请尝试:
/[\x00-\x1F]/.test(data)
如果空格被视为非二进制数据,请尝试:
/[\x00-\x08\x0E-\x1F]/.test(data)
如果您知道字符串是ASCII或二进制,请使用:
/[\x00-\x1F\x80-\xFF]/.test(data)
或:
/[\x00-\x08\x0E-\x1F\x80-\xFF]/.test(data)