2012-11-19 11 views
7

W mojej aplikacji przetwarzam dane w formacie ISO 8859-1 przez CSVParser. Ale kiedy przechowuję parsowane dane do tablicy String, to sprawdź krzyżyk z odpowiednimi sformatowanymi danymi ISO 8859-1 w bazie danych, tablica ciągów nie obsługuje niektórych mapowań znaków (np: μ jest zakodowana jako?). To jest mój kod parsujący:Java: Jak przekonwertować plik java.lang.String na format ISO 8859-1

CSVReader reader; 
    List<String[]> list = new ArrayList<String[]>(); 
    try { 
     reader = new CSVReader(new InputStreamReader(new FileInputStream(new File(directory))), Configuration.CSV_SEPERATOR); 

     list = reader.readAll();  
for (String[] singleStock : list) { 
} 

String [] singapart, służy do przechowywania analizowanych danych.

Odpowiedz

4

musisz określić CharSet podczas tworzenia InputStreamReader

Przykład:

new InputStreamReader(new FileInputStream(new File(directory)),Charset.forName("ISO-8859-1")) 
3

spróbuj użyć innego konstruktora dla InputStreamReader

InputStreamReader(InputStream in, String charsetName) 
Create an InputStreamReader that uses the named charset. 
4

InputStreamReader będą wiedzieć strumień ISO 8859 -1 format. Spróbuj dodać ten parametr do InputStreamReader ...

new InputStreamReader(... , Charset.forName("ISO-8859-1")) 
Powiązane problemy