如何从奇怪的字符(例如 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 数据中是非常不寻常的(也是一个问题),除非它表示二进制对象。
我正在使用 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 数据中是非常不寻常的(也是一个问题),除非它表示二进制对象。