Ich verwende Supercsv 2.1.0, um eine CSV-Datei mit deutschen Wörtern zu analysieren.So verwenden Sie Codierung in Supercsv GetHeader
Die angegebene CSV-Datei hat eine Kopfzeile in der ersten Zeile. In diesem Header gibt es einige mutierte Vokale wie: Ä, ä, Ü, ö und so weiter. Zum Beispiel: Betrag; Währung; Info
In meiner Codierung Ich versuche, den Header der csv wie folgt zu erhalten:
ICsvBeanReader inFile = new CsvBeanReader(new InputStreamReader(new FileInputStream(file), "UTF8"), CsvPreference.EXCEL_NORTH_EUROPE_PREFERENCE);
final String[] header = inFile.getHeader(true);
Hier ist mein Problem mit dem Header-Array. Alle Header mit mutierten Vokalen sind nicht korrekt mit utf8 Zeichensatz codiert.
Gibt es eine Möglichkeit, wie ich den Header richtig lesen kann?
Hier ist ein Pseudo-Unit-Test:
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();
}
}
}
Mit freundlichen Grüßen, Alex
Haben Sie versucht, "UTF-8" anstelle von "UTF8" zu verwenden? –
Nein, "UTF-8" behebt das Problem nicht –