2

我有一个提供给我的文本文件,没有人知道它的编码。在文本编辑器中查看它,一切看起来都很好,正确地排列成整齐的列。

但是,当我读取数据时,我看到了一些异常情况。即使从视觉上看,“Foo”字段出现在文本文件的相同列中(例如,在第 15-20 列中),当我尝试使用substring(15,20)我的数据将其拉出时变化很大。有时我会提取字节 11-16,有时是 18-23,有时是 15-20……记录之间没有一致性。

我怀疑有一些特殊的字符,我的文本编辑器看不到,但可以被String方法读取(并计入索引)。Java中有什么方法可以用任何可见的特殊字符转储文件的内容,以便我可以看到我需要用正则表达式替换的字符串吗?

如果不是在 Java 中,任何人都可以推荐一个可以帮助我的工具吗?

4

2 回答 2

1

您是否尝试将文件的内容打印为单个整数或字节?这样你就可以看到是否有任何隐藏的字符。

于 2012-07-24T12:25:46.413 回答
1

我将从直接查看文件开始。任何代码都会增加一层怀疑。使用 Total Commander(或您平台上的同等设备),查看文件 (F3) 并切换到十六进制模式。您建议特殊字符的行为在行之间甚至不一致,因此您应该在尝试通过算法修复它之前获得一些关于格式的视觉线索。

于 2012-07-24T13:08:59.607 回答