本篇內(nèi)容主要講解“Java怎么避免UTF-8的csv文件打開中文出現(xiàn)亂碼”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Java怎么避免UTF-8的csv文件打開中文出現(xiàn)亂碼”吧!
創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供黃岡網(wǎng)站建設(shè)、黃岡做網(wǎng)站、黃岡網(wǎng)站設(shè)計、黃岡網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、黃岡企業(yè)網(wǎng)站模板建站服務(wù),十余年黃岡做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
因為條件有限,只測試了這幾個版本,可見utf-16le是更通用的編碼格式。下面附上java代碼,main方法中采用utf-16le編碼,最后調(diào)用了utf8編碼的方法,最后會輸出兩種編碼格式的csv文件:
import java.io.*;/** * Created by zhaozhi on 15-5-29. */public class TestCSV { public static String join(String[] strArr, String delim) { StringBuilder sb = new StringBuilder(); for(String s : strArr) { sb.append(s); sb.append(delim); } String ret; if (strArr.length > 1) { ret = sb.substring(0, sb.length()-1); } else { ret = sb.toString(); } return ret; } public static void main (String[] args) throws Exception { String[] heads = {"日期", "產(chǎn)品", "訂單數(shù)"}; String[][] rows = { {"20150228", "安卓", "23"}, {"20150301", "web", "34"} }; byte[] bom = {(byte)0xFF, (byte)0xFE}; String fname = "d:\\utf-16le.csv"; BufferedOutputStream bo = new BufferedOutputStream(new FileOutputStream(fname)); bo.write(bom); bo.write(join(heads, "\t").getBytes("utf-16le")); bo.write("\n".getBytes("utf-16le")); for (String[] row : rows) { bo.write(join(row, "\t").getBytes("utf-16le")); bo.write("\n".getBytes("utf-16le")); } bo.close(); UTF8(); } public static void UTF8() throws IOException { String line = "中文,標題,23"; OutputStream os = new FileOutputStream("d:/utf-8.csv"); os.write(239); // 0xEF os.write(187); // 0xBB os.write(191); // 0xBF PrintWriter w = new PrintWriter(new OutputStreamWriter(os, "UTF-8")); w.print(line); w.flush(); w.close(); }}
excel版本 | 附加包 | 編碼 | 測試結(jié)果 |
---|
到此,相信大家對“Java怎么避免UTF-8的csv文件打開中文出現(xiàn)亂碼”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!