微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

二进制文件特殊字符

如何解决二进制文件特殊字符

| 我正在对后缀数组排序进行编码,并且此算法将前哨字符附加到原始字符串。此字符不能在原始字符串中。 由于此算法将处理二进制文件字节,因此我可以确保在任何二进制文件中找不到任何特殊字节字符吗? 如果存在,如何在C ++编码中表示此字符? 我使用的是Linux,不确定是否会有所作为。     

解决方法

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。