【问题标题】:How to clean a csv file from weird characters (e.g. SUB)?如何从奇怪的字符(例如 SUB)中清除 csv 文件?
【发布时间】:2015-04-15 12:46:51
【问题描述】:

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

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

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

【问题讨论】:

  • 你能展示一些来自 Notepad++ 和 Excel 的屏幕截图吗?

标签: java csv jdbc teradata


【解决方案1】:

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

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

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

【讨论】:

  • 谢谢。我有一种感觉这是文件标志的结尾,因为我试图将它导入到 SAS 等 BI 工具中,并且它被导入到第一个 SUB
【解决方案2】:

你可以试试:

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

如果你想删除它:

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

更多: How can I replace non-printable Unicode characters in Java?

【讨论】:

    猜你喜欢
    • 2020-08-19
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    • 2012-11-02
    • 2017-08-25
    • 2018-03-28
    • 2014-07-11
    • 1970-01-01
    相关资源
    最近更新 更多