0

我创建了一个 Java 应用程序,它解析文本文件以提取正在加载到数据表的字段。我们发现了一些异常处理,其中表不能接受特殊字符,特别是Â等等。

当我查看这些字符时,这些字符在输入文件中显示为空格,但 Java 对它们的解释不同。我怀疑这是一个解释不同的字符代码。

我的问题是:为了过滤掉这些字符,有什么方法可以生成 Java 所见内容的列表?我正在考虑打印 CHAR 和字符代码,如果可能的话,打印字符 ~set~(ASCII、ANSI、UTF-8 等)。由此,我可以在结束文件中为字符替换一个空格并解决我的问题。

有没有我没有看到的更简单的解决方案?

4

2 回答 2

1

试试解码说,UTF8?

public static byte[] stringToByteArray(String s)
    throws UnsupportedEncodingException {
    return s.getBytes("UTF-8");
}

或者像“iso-8859-1”之类的其他东西并将该字节数组转换为字符串并尝试打印它?

于 2012-05-09T13:05:27.083 回答
1

听起来您正在跨越字符集,或者您的输入文件中有某种控制字符序列。您应该将精力集中在这方面,并确保您使用正确的字符集。我能想到的汇总文件中字符列表的唯一方法是数组并循环文件。

如果您真的想删除所有这些内容,请查看此线程

排除特殊字符的正则表达式

它解释了如何使用正则表达式将字符列入白名单和黑名单。

于 2012-05-09T13:06:59.877 回答