在Windows下,若要以UTF-8來儲存,則必須在文件的最開頭寫入 {0xEF, 0xBB, 0xBF},此三碼即是BOM。故在Java端的撰寫如下:
File file = new File("test.csv");
FileOutputStream out=null;
OutputStreamWriter osw=null;
BufferedWriter bw=null;
out = new FileOutputStream(file);
byte[] uft8bom={(byte)0xef,(byte)0xbb,(byte)0xbf};
out.write(uft8bom);
osw = new OutputStreamWriter(out,StandardCharsets.UTF_8);
bw = new BufferedWriter(osw);
bw.append("TEST,中文,是否\r\n");
bw.close();
Reference :
[1] BOM (隐藏字符)
[2] JAVA/SERVLET 以UTF-8导出CSV文件时产生乱码的解决方法
沒有留言:
張貼留言