我试图从数据库中检索到的数据创建一个csv文件。数据本身包含逗号,管道和任意数量的分隔符。我们选择使用非ascii断开的管道符号作为分隔符,这也必须存在于xml配置文件和java测试文件中。unix中忽略的ascii csv分隔符
当我们的java文件被部署到unix时,它会抱怨找到了无效字符,我猜是因为它在ascii文件中找到了非ascii字符。
因此,我们将文件转换为UTF-8,在Windows中将此字符显示为 字符。所以我们从UTF-8网站复制了破损的管道符号。现在在windows和unix编译好。然而,在Windows中测试运行良好,但没有在Unix中,因为它解释|作为Â
任何人都可以建议我应该如何处理这些文件,他们应该在什么格式?
我现在唯一能想到的其他解决方案是使用ascii字符作为分隔符的组合,我并不想这么做。
在此先感谢
我把它分成2条评论。感谢您的回应。我们遇到的麻烦是我们使用内部csv解析器,所以目前不能使用opencsv,所以我们不能扩展它来处理带引号的字段。我注意到你对未来在实际数据中使用分隔符的观点,这是一个风险。然而,目前我只需要一些帮助,使用破损的管道字符作为分隔符在Windows和Unix中都可以使用。 –
一个想法是,unix机器上使用的默认编码是ascii,所以如果我们使用保存为cp1252的文件,那么该字符不会被解释。但是,当我们将它们保存为utf-8时,它们也没有被正确解释。我需要帮助的是克服这个最初的问题,然后可以稍后解决更大的设计问题(着名的遗言:)。 –