如何从奇怪的字符(例如 SUB)中清除 csv 文件?

How to clean a csv file from weird characters (e.g. SUB)?

我正在使用 jdbc 将 csv 文件上传到 teradata。以前一切都很好,直到最近我遇到了一个 csv 文件,其中有一些奇怪的字符并且我的代码无法上传。

我用记事本++打开csv文件,它看起来像这样SUB。当我在 Excel 中打开它时,它看起来像这样 ->->

当我手动删除那些字符时,一切恢复正常。我很好奇,有没有什么方法可以使用 java 来清理 csv 文件以删除所有类型的无效字符?

你可以试试:

myString.replaceAll("\p{C}", "?");

如果要删除它:

myString.replaceAll("\p{C}", "");

更多信息在这里: How can I replace non-printable Unicode characters in Java?

SUB 字符是 ASCII 26(= 十六进制 0x1A)。当 DEC-10s 统治地球时,这被称为 Ctrl-Z。用于表示文件结束。

如果它确实在文件的末尾,并且您使用 Java InputStream 读取它(请查看 Read/convert an InputStream to a String),它将关闭该终端 Ctrl-Z .

将 SUB 包含在 CSV 数据中是非常不寻常的(也是一个问题),除非它表示二进制对象。