Java如何判断有乱码,是否有Oracle那种ASCIISTR那样的函数

现在有这么一个文件,文件中字符串用Tab键分隔

例如
aaa bbb cc

但是有时候
汉字和tab键合成了一个,成为了乱码

例如
电脑公?3楼 fff GGG

那个司和tab键合并成了乱码
修改源文件生成的方式肯定不可能,只能考虑读的时候做一些处理

例如
电脑公?3楼 fff
这行记录,我以tab键解析

那么结果 应当是

电脑公
3楼
fff
那个"司"字丢掉就算了,但是这条记录不能丢,请问用java怎么达到这个目标

Oracle中有个ASCIISTR可以来判断乱码,Java有类似的吗?
附加 Oracle判断方式
case when asciistr(subsname) like '%\FFFD%' THEN '乱码'
else subsname
end

[b]问题补充:[/b]
在记事本打开就是

电脑公?3楼 fff GGG

这个样子,是第3方传过来就是这个样子.是在 AIX机器上看到的啊
另外在AIX机器上看到也是现在这个样子的啊

我们不可能要求第3方改啊

对比一下这两句就知道了:
[code="java"]
System.out.println(java.nio.charset.Charset.forName("GBK").newEncoder().canEncode("淋浴"));
System.out.println(java.nio.charset.Charset.forName("ISO-8859-1").newEncoder().canEncode("淋浴"));
[/code]

需要注意的,你那个文件最初编码是什么,你必须清楚,比如说你的文件是UTF-8编码的,而你的JVM的默认编码环境是GBK,如果你用FileReader作为输入字符流,那么你得到的将是完全的的乱码,尽管你用记事本打开这个文件是正确的编码。FileReader只支持默认字符编码。此时你必须在 FileInputStream 上构造一个 InputStreamReader来实现你的目标

根据你贴出来的例子,对乱码问题理解上有混淆,你应该仔细地看看中文编码的资料。我不觉得你那种方式可以解决乱码问题。

关于java中的字符判断,可以从String对象中遍历char,然后char是可以强制转换成int类型的,int类型10进制可以转换成16进制。