您好,登錄后才能下訂單哦!
java導(dǎo)出csv文件出現(xiàn)亂碼怎么辦?其實(shí)要解決這個問題也不難,為此小編總結(jié)了這篇文章,下面我們一起來看看java導(dǎo)出csv文件出現(xiàn)亂碼的解決方法。
將查詢的數(shù)據(jù)以xls文件導(dǎo)出時(UTF-8編碼),數(shù)據(jù)正常;但以CSV文件導(dǎo)出時,文件中的中文亂碼,同樣是UTF-8編碼,改成GBK編碼導(dǎo)出時,中文顯示正常。
解決方法:
以CSV方式導(dǎo)出的文件中默認(rèn)不含BOM信息,通過給將要輸出的內(nèi)容設(shè)置BOM標(biāo)識(以 EF BB BF 開頭的字節(jié)流)即可解決該問題。具體方法如下:
... OutputStreamWriter outputStreamWriter = new OutputStreamWriter(response.getOutputStream(), "UTF-8"); // 要輸出的內(nèi)容 result = (String)contentMap.get(RESPONSE_RESULT); response.setHeader("Content-Disposition", "attachment;filename=test.csv"); outputStreamWriter.write(new String(new byte[]{(byte) 0xEF, (byte) 0xBB, (byte) 0xBF})); outputStreamWriter.write(result); outputStreamWriter.flush();
如果是以O(shè)utputStream流實(shí)現(xiàn)的 ,參數(shù)可以按如下修改:
out = response.getOutputStream(); //加上UTF-8文件的標(biāo)識字符 out.write(new byte []{(byte) 0xEF, (byte) 0xBB, (byte) 0xBF});
上文描述的就是java導(dǎo)出csv文件出現(xiàn)亂碼的解決方法,具體使用情況還需要大家自己動手實(shí)驗使用過才能領(lǐng)會。如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。