Java 如何输出特殊字符可见的数据?
我有一个提供给我的文本文件,没有人知道上面的编码。在文本编辑器中查看,所有内容看起来都很好,正确地排列成整齐的列 然而,当我阅读数据时,我看到了一些异常。即使在视觉上,字段“Foo”出现在文本文件的相同列中(例如,在第15-20列中),但当我尝试使用Java 如何输出特殊字符可见的数据?,java,io,Java,Io,我有一个提供给我的文本文件,没有人知道上面的编码。在文本编辑器中查看,所有内容看起来都很好,正确地排列成整齐的列 然而,当我阅读数据时,我看到了一些异常。即使在视觉上,字段“Foo”出现在文本文件的相同列中(例如,在第15-20列中),但当我尝试使用子字符串(15,20)将其拉出时,我的数据变化很大。有时我会提取字节11-16,有时18-23,有时15-20…记录之间没有一致性 我怀疑有一些特殊的ChartActer,对我的文本编辑器来说是不可见的,但是可以通过String方法读取(并计入索引)
子字符串(15,20)
将其拉出时,我的数据变化很大。有时我会提取字节11-16,有时18-23,有时15-20…记录之间没有一致性
我怀疑有一些特殊的ChartActer,对我的文本编辑器来说是不可见的,但是可以通过String
方法读取(并计入索引)。在Java中,是否有任何方法可以使用任何可见的特殊字符转储文件内容,以便我可以看到需要用正则表达式替换的字符串的内容
如果不是Java,有人能推荐一个可以帮助我的工具吗 您是否尝试过将文件内容打印为单个整数或字节?这样,您就可以查看是否存在任何隐藏字符。我将从直接查看文件开始。任何代码都会增加一层怀疑。使用Total Commander(或平台上的等效命令),查看文件(F3)并切换到十六进制模式。您认为特殊字符的行为在行之间甚至不一致,因此在您尝试用算法修复它之前,您应该获得一些关于格式的视觉线索。对于我试图提取的字段,是的……我使用了
子字符串
来获取单个字节(如字符
),我没有看到任何奇怪的东西。我想尝试一些绕过String
方法的方法,但我不确定它在Java中的位置——或者我是否完全需要另一个工具。举例来说,这将告诉您是否有8个空格或1个制表符(\t
)。如果Character.isLetterDigit(c)
,您可以要求每个char c
,如果不是,则将其打印为整数。所以你可以更容易地找到特殊的角色。这正是我想要做的…~看看~在围绕它编程之前有什么。谢谢总指挥官的提示!看来这会有很大帮助。