我开始研究 PDF 规范。 PDF 文件是文本和二进制数据的混合体。为了进行一些快速而肮脏的编辑,我想将文件读入字符串,查找并替换一些文本部分,然后将字符串写回文件,同时保留除我替换的字节之外的所有字节。
我的第一次天真的尝试如下所示:
byte[] orignalBytes = ...; // read bytes from file
String content = new String(originalBytes, StandardCharsets.US_ASCII);
// do some find and replace (only working with ASCII chars)
byte[] changedBytes = content.getBytes(StandardCharsets.US_ASCII);
这会失败,因为引用 String 构造函数的 javadoc:“此方法始终用此字符集的默认替换字符串替换格式错误的输入和不可映射的字符序列”。
我正在寻找一个特殊的字符集,它映射 US_ASCII 字符集中的所有字符,此外“在从 byte[] 到 String 来回转换时保留所有其他字节的值”。
我只需要能够使用 ascii 字符。
我现在正在考虑编写自己的字符集,但想知道类似的东西是否已经存在?
有什么想法或指示吗?
最佳答案
每个文本字符串都可以有自己的自定义编码。从长远来看,使用现有的 PDF 库将为您省去很多麻烦。
关于java - 是否有一个特殊的字符集将所有可能的字节值映射到有效字符并映射回来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15465194/