Java CSV转换无法识别特殊字符

Java CSV转换无法识别特殊字符,java,eclipse,csv,Java,Eclipse,Csv,问题就在这里。我有一个java程序,可以将XML转换为CSV。我的xml中的一个元素标记如下所示 <person-name>Greg kaménez</person-name>. CSV文件无法指定用于编写它们的字符编码,因此文本编辑器和Excel等程序在读取时必须尝试猜测编码,或者使用系统默认值 如果文本编辑器能够正确显示字符,可能您做的一切都是正确的,但是Excel没有正确猜测字符编码 在Excel中导入文件时,它会要求您指定原始编码。选择正确的值,您应该能够正确读

问题就在这里。我有一个java程序,可以将
XML
转换为
CSV
。我的xml中的一个元素标记如下所示

<person-name>Greg kaménez</person-name>.

CSV
文件无法指定用于编写它们的字符编码,因此文本编辑器和Excel等程序在读取时必须尝试猜测编码,或者使用系统默认值

如果文本编辑器能够正确显示字符,可能您做的一切都是正确的,但是Excel没有正确猜测字符编码


在Excel中导入文件时,它会要求您指定原始编码。选择正确的值,您应该能够正确读取文件。

Excel默认使用Windows-1252。因此,如果您想在Excel中读取CSV,请使用

BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(csvFile), "Windows-1252"));

我怀疑这是重音
e
编码为两个字符的问题,其中一个字符修改了第二个字符。因为这是顺序特定的,所以当一些应用程序处理那些无序的字符时,它将创建乱七八糟的字符,而不是正确重音的字符。(我们需要查看代码以准确地排除故障。)将两个文件的编码都设置为UTF感谢您的响应我尝试将两个文件的编码都设置为UTF-8,但无法正常工作。我认为弗拉维奥是对的,但他的回答也帮不了我。我的程序在Eclipse中生成csv文件,当我查找该文件的属性时,我看到UTF-8编码已设置为默认值。感谢您的响应。不幸的是,我希望通过编程而不是手动实现这一点。
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(csvFile), "Windows-1252"));