溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

java導(dǎo)出csv文件出現(xiàn)亂碼怎么辦

發(fā)布時間:2020-06-10 09:32:40 來源:億速云 閱讀:2065 作者:Leah 欄目:編程語言

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è)資訊頻道!

向AI問一下細(xì)節(jié)

免責(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)容。

AI