【发布时间】:2012-10-12 17:54:30
【问题描述】:
我遇到了 Excel 无法正确保存我的文件的问题。我有一个数据列表,分为三列:String String INt。
我想将此文件读入 Java 程序以执行一些计算。由于原生 UTF-8 编码,Excel 导出为 .csv 文件会导致我丢失大量数据。我可以将它保存为 UTF-16 .txt 文件,但是,我得到了另一个烦人的结果。如果我在每个字段字段之间插入逗号列,它会保存带有引号的逗号!我已经看到了一些解决这个问题的方法,但它们不保留 UTF-16 编码。
任何帮助将不胜感激。
【问题讨论】:
-
如果我是你,我会使用 Apache POI 库并直接从 xlsx 读取,而不是转换为 csv,正如你所经历的那样,这可能很棘手。对于您提到的情况,它应该足够简单。我过去做过这个,它可以很好地处理 UTF-8。
-
我对 Apache POI 没有任何经验,但简单浏览一下他们的网站肯定看起来很有希望。只要我可以使用它应该工作的库提取 UTF-16 和 ASCII 字符。
-
我一直使用 UTF-16 和东欧字符集,而且效果非常好。
-
导出为 UTF-8 不应丢失任何数据。您可能意外导出为代码页 1252。 CSV 格式通常需要引用包含逗号的列。如果这不是您想要的,那么您不需要 CSV 文件。不要责怪 Excel 遵守规则。
-
更具体地说,我丢失了特殊字符。该文件包含的名称可能包含以 .csv 格式保存时未保留的特殊字符。