我有一个提供给我的文本文件,没有人知道它上面的编码。在文本编辑器中查看它,一切看起来都很好,正确对齐整齐的列。
但是,当我读取数据时,我发现了一些异常现象。即使在视觉上,字段“Foo”出现在文本文件的相同列中(例如,在第15-20列中),当我尝试使用substring(15,20)
将其拉出时,我的数据变化很大。有时我会拉11-16个字节,有时18-23个,有时15-20个......记录之间没有一致性。
我怀疑有一些特殊的图表,我的文本编辑器看不见,但可以通过String
方法读取(并在索引中计算)。在Java中是否有任何方法可以使用任何可见的特殊字符转储文件的内容,这样我就可以看到我需要使用正则表达式替换字符串?
如果不是Java,任何人都可以推荐一款可以帮助我的工具吗?
答案 0 :(得分:1)
您是否尝试将文件内容打印为单个整数或字节?这样你就可以看出是否有任何隐藏的角色。
答案 1 :(得分:1)
我首先要直接查看该文件。任何代码都会增加一层疑问。拿一个Total Commander(或平台上的等效命令),查看文件(F3)并切换到十六进制模式。您建议行之间的特殊字符行为甚至不一致,因此在尝试通过算法修复之前,您应该获得有关格式的一些视觉线索。