这是问题所在。我有一个将XML
转换为CSV
的java程序。我的xml中的一个元素标记如下所示。
<person-name>Greg kaménez</person-name>.
我的解析器能够正确解析它。但转换后,当我将其写入csv文件并在mcsft excel中打开时,我将"Greg kaménez"
视为单元格值,而不是Gregkaménez。
我还注意到,当我在Eclipse IDE中的文本编辑器中打开相同的csv文件时,它会正确显示名称“Greg kaménez
”。
这是我将字符串写入csv:
的片段 String csv = ""x","y","Greg kaménez","z"";
String fileName = "output.csv";
File csvFile = new File(fileName);
String jobId = null;
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(csvFile), "UTF-8"));
writer.append(csv);
writer.close();
答案 0 :(得分:2)
Excel默认使用Windows-1252。因此,如果您想在Excel中阅读CSV,请使用
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(csvFile), "Windows-1252"));
答案 1 :(得分:1)
CSV
文件无法指定您用于编写它们的字符编码,因此文本编辑器和Excel等程序在读取时必须尝试猜测编码,或使用系统默认值。
如果文本编辑器能够正确显示字符,可能你做的一切都正确,但Excel没有正确猜出字符编码。
在Excel中导入文件时,它会要求您指定原始编码。选择正确的值,您应该能够正确读取文件。