我正在使用supercsv 2.1.0来解析其中包含德语单词的CSV文件。
给定的CSV文件在第一行有一个标题。 在这个标题中有一些变异的元音,如:Ä,ä,Ü,ö等。 例如: Betrag;Währung;信息
在我的编码中,我试图像这样得到csv的标题:
ICsvBeanReader inFile = new CsvBeanReader(new InputStreamReader(new FileInputStream(file), "UTF8"), CsvPreference.EXCEL_NORTH_EUROPE_PREFERENCE);
final String[] header = inFile.getHeader(true);
这是我的标题数组的问题。 使用utf8字符集无法正确编码带有变异元音的所有标题。
有没有办法正确读取标题?
这是一个伪单元测试:
public class TestSuperCSV {
@Test
public void test() {
String path = "C:\\Umsatz.csv";
File file = new File(path);
try {
ICsvBeanReader inFile = new CsvBeanReader(new InputStreamReader(
new FileInputStream(file), "UTF-8"),
CsvPreference.EXCEL_NORTH_EUROPE_PREFERENCE);
final String[] header = inFile.getHeader(true);
System.out.println(header[9]); //getting "W?hrung" but needed "Währung" here
} catch (UnsupportedEncodingException | FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
亲切的问候, 亚历
答案 0 :(得分:4)
听起来你的文件实际上并没有使用UTF-8编码。
我可以通过使用ISO-8859-1编码创建CSV文件并运行代码来复制您的方案,它显示为W?hrung
。
如果我然后更新InputStreamReader
以使用"ISO-8859-1"
作为编码,则它会正确显示为Währung
。