導出csv文件中文亂碼

導出csv文件中文亂碼

微軟的excel文件需要通過文件頭的bom來識別編碼,所以寫文件時,需要先寫入bom頭。

在寫文件前,加入BOM

String bOM = new String(new byte[] { (byte) 0xEF, (byte) 0xBB, (byte) 0xBF });
//or
byte[] uft8bom={(byte)0xef,(byte)0xbb,(byte)0xbf};
FileOutputStream fos = new FileOutputStream(new File("d:\\test.csv"));
// 寫入bom頭
byte[] uft8bom={(byte)0xef,(byte)0xbb,(byte)0xbf};
//String bOM = new String(new byte[] { (byte) 0xEF, (byte) 0xBB, (byte) 0xBF });
fos.write(uft8bom);

Writer writer = new BufferedWriter(  
                  new OutputStreamWriter(  
                    fos, "UTF-8"));
CsvExporter  csvExporter = new CsvExporter(writer);
csvExporter.addColumn(new Column("company","公司"));
csvExporter.addColumn(new Column("email","郵箱"));
List<Map<String,String>> list = new ArrayList<Map<String,String>>(); 
Map<String,String> map = new HashMap<String,String>();
map.put("company", "公司1");
map.put("email", "郵箱1");
list.add(map);
csvExporter.export(list);;
csvExporter.close();

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章