二进制文件特殊字符

| 我正在对后缀数组排序进行编码,并且此算法将前哨字符附加到原始字符串。此字符不能在原始字符串中。 由于此算法将处理二进制文件字节,因此我可以确保在任何二进制文件中找不到任何特殊字节字符吗? 如果存在,如何在C ++编码中表示此字符? 我使用的是Linux,不确定是否会有所作为。     
已邀请:
        不,那里没有。二进制文件可以包含字节值的每种组合。我不会称它们为“字符”,因为它们是二进制数据,而不是(必需)表示字符。但是,无论名称如何,它们都可以具有任何价值。     
        这更像是您应该回答自己的问题。我们不知道您拥有哪些二进制数据,哪些字符可以存在,哪些字符不能。如果您正在谈论通用二进制数据-可能有位和字节以及字符的任何组合,因此没有这样的字符。 从另一个角度来看,您正在谈论字符串。什么样的琴弦? ASCII字符串? ASCII码的范围非常有限,例如,因此您可以使用128。一些旧协议出于类似目的使用SOH(
\\1
)。因此,如果您确切知道要处理的字符串,可能会有解决方法。 就我所知,后缀数组不能应用于任意二进制数据(可以,但是可以,但是没有任何意义)。     
        文件只能包含位。比特组可以解释为ASCII字符,浮点数,JPEG格式的照片,您可以想象得到的任何东西。解释基于您选择的编码方案(例如ASCII,BCD)。如果您的编码方案没有填满所有可能的代码表,则可以为特殊目的选择一个(例如,数字可以天真地编码为4位,即2 ^ 4 = 16,因此有6个冗余码字)。     

要回复问题请先登录注册