二进制文件特殊字符
Binary file special characters
我正在编码一个后缀数组排序,该算法将一个sentinel字符附加到原始字符串中。此字符不能在原始字符串中。
由于这个算法将处理二进制文件的字节,我可以确保在任何二进制文件中都找不到任何特殊的字节字符吗?如果它存在,我如何在C++编码中表示这个字符?
我在linux上,我不确定它是否有什么不同。
不,没有。二进制文件可以包含每个字节值的组合。不过,我不会称它们为"字符",因为它们是二进制数据,不一定代表字符。但无论名字是什么,它们都可以有任何价值。
这更像是一个你应该自己回答的问题。我们不知道你有什么二进制数据,什么字符可以存在,什么字符不能。如果你谈论的是通用二进制数据,可能有任何比特、字节和字符的组合,所以没有这样的字符。
从另一个角度来看,你说的是弦。什么样的绳子?ASCII字符串?例如,ASCII代码的范围非常有限,因此可以使用128。一些旧的协议将SOH(1
)用于类似的目的。因此,如果你确切地知道你正在处理什么字符串,可能会有一种方法。
据我所知,后缀数组不能应用于任意二进制数据(当然可以,但没有任何意义)。
文件只能包含位。比特组可以被解释为ASCII字符、浮点数字、JPEG格式的照片,任何你能想到的。解释基于您选择的编码方案(如ASCII、BCD)。如果你的编码方案没有填满整个可能的代码表,你可以为你的特殊目的选择一个(例如,数字可以天真地编码在4位上,2^4=16,所以你有6个多余的码字)。
相关文章:
- 将结构写入二进制文件后,该文件仍然具有正常字符,而不是不可读字符
- SDL2加载具有特殊字符的文件
- 将无符号字符的向量写入二进制文件 c++
- C++逐个字符读取二进制文件字符
- 将文件信息(字符数组)嵌入到编译的二进制文件中
- 如何从文本文件C++读取整数和特殊字符
- 如何在C 中的Little Endian中读取来自二进制文件的单独的十六进制字符
- 键入特殊字符并保存在文件中
- 使用 std::find 查找从二进制文件中读取的字符并转换为 std::vector 中的 std::string<string> 会产生这种不可预测的行为?
- 使用 c++ / qt 在二进制文件中写入法语字符
- C/C++ 读取具有多个字符串和字符的二进制文件
- 在读取 Visual C++ 中的二进制文件(而不是其他编译器)后,每隔一个字符都是 NULL
- C++-用非ascii字符替换文件中的特殊字符
- 使用std::wifstream读取带有特殊字符的unicode文件
- 向二进制文件写入和读取无符号字符
- 使用 ifstream 剂量读取大型二进制文件不会填充字符缓冲区C++
- 我正在尝试清除数据文件中具有某些条件的特殊字符,但这些条件不满足
- 从文件中读取单个字符将返回特殊字符
- 用c++将无符号字符存储为二进制文件
- 二进制文件特殊字符