0

我正在尝试从从数据库中检索到的数据创建一个 csv 文件。数据本身包含逗号、管道和任意数量的分隔符。我们选择使用非 ascii 破管符号 ¦ 作为分隔符,这也必须存在于 xml 配置文件和 java 测试文件中。

当我们的 java 文件部署到 unix 时,它抱怨找到了一个无效字符,我猜是因为它在 ascii 文件中找到了一个非 ascii 字符。

所以我们将文件转换为 UTF-8,在 Windows 中,这将 ¦ 字符显示为 � 字符。所以我们从一个 UTF-8 网站复制了破管符号。这现在可以在 windows 和 unix 中编译。但是,在 Windows 中,测试运行良好,但在 unix 中却不行,因为它将 ¦ 解释为 ¦

谁能建议我应该如何处理这些文件以及它们应该采用什么格式?

我现在能想到的唯一其他解决方案是使用 ascii 字符的组合作为分隔符,我真的不想这样做。

提前致谢

4

1 回答 1

1

一般的方法是引用可能包含分隔符的字段。然后通过使用两个引号来表示嵌入的引号来处理它们。这可能需要比您当前所做的更多的预处理/后处理,但会使您的代码更加健壮(如果数据库字段开始使用嵌入式管道字符会发生什么情况?)。

opencsv项目可以处理这个用例。

于 2012-09-18T16:11:20.903 回答