我試過幾種流行的CSV到Java解串器 - OpenCSV,JSefa和Smooks的 - 沒有正確地讀取文件:如何將日文字段從CSV文件讀取到java bean中?
First Name,Last Name
エリック,山中
花子,鈴木
一郎,鈴木
裕子,田中
政治,山村
到我的Java對象集合。
OpenCsv代碼:
HeaderColumnNameTranslateMappingStrategy<Contact> strat = new HeaderColumnNameTranslateMappingStrategy<Contact>();
strat.setType(Contact.class);
strat.setColumnMapping(colNameTranslateMap);
InputStreamReader fileReader=null;
CsvToBean<Contact> csv = new CsvToBean<Contact>();
fileReader = new InputStreamReader(new FileInputStream(file), "UTF-8");
contacts = csv.parse(strat, new CSVReader(fileReader));
我已經試過字符集設置爲UTF-8,UTF-16和ISO-8859-1,當我創建的FileInputStream,但集合永遠不會填充正確。正如在調試器和System.out中看到的那樣,這些字段包含垃圾,而且通常記錄的數量是錯誤的。
如何在創建FileInputStream時指定字符集? –