国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 Java Java基礎 java導出csv亂碼解決方法介紹

java導出csv亂碼解決方法介紹

Dec 04, 2019 am 10:41 AM
java

java導出csv亂碼解決方法介紹

1、問題

將查詢的資料以xls檔案匯出時(UTF-8編碼),資料正常;但以CSV檔案匯出時,檔案中的中文亂碼,同樣是UTF-8編碼,改成GBK編碼匯出時,中文顯示正常。

本來以為問題解決,後面匯出含拉丁字元(如à?êàì)的資料時,以xls檔案匯出資料正常顯示,以CSV檔案匯出時,檔案中的拉丁文字元顯示為「?」號。

試著改成其他編碼方式都無效,後面網(wǎng)路搜到了一個解決這個問題的方法。

2、解決方法

以CSV方式匯出的檔案中預設不含BOM訊息,透過給將要輸出的內(nèi)容設定BOM標識(以EF BB BF 開頭的位元組流)即可解決該問題。具體方法如下:(建議:java影片教學

...
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();

如果是以OutputStream流實作的,參數(shù)可以如下修改:

out = response.getOutputStream();     
//加上UTF-8文件的標識字符      
out.write(new byte []{(byte) 0xEF, (byte) 0xBB, (byte) 0xBF});

註:

BOM: Byte Order Mark,位元組順序標記(以下摘自百度百科)

在UCS 編碼中有一個叫做「Zero Width No-Break Space」 ,中文譯名為「零寬無間斷間隔」的字符,它的編碼是FEFF。而 FFFE 在 UCS 中是不存在的字符,所以不應該出現(xiàn)在實際傳輸中。

UCS 規(guī)範建議我們在傳輸位元組流前,先傳送字元 “Zero Width No-Break Space”。這樣如果接收者收到 FEFF,就表示這個位元組流是 Big-Endian 的;如果收到FFFE,就表示這個位元組流是 Little- Endian 的。因此字元 “Zero Width No-Break Space(零寬無間斷間隔)” 又被稱為 BOM。

UTF-8 不需要 BOM 來表示位元組順序,但可以用 BOM 來表示編碼方式。字元 “Zero Width No-Break Space” 的 UTF-8 編碼是 EF BB BF。所以如果接收者收到以 EF BB BF 開頭的位元組流,就知道這是 UTF-8編碼了。 Windows 就是使用 BOM 來標記文字檔案的編碼方式的。

更多java知識請關注java基礎教學欄。

以上是java導出csv亂碼解決方法介紹的詳細內(nèi)容。更多資訊請關注PHP中文網(wǎng)其他相關文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔相應的法律責任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

用Python生成序列產(chǎn)生關鍵字 用Python生成序列產(chǎn)生關鍵字 Jul 16, 2025 am 04:50 AM

yield關鍵字用於創(chuàng)建生成器,按需產(chǎn)生值,節(jié)省內(nèi)存。 1.替代return生成有限序列,如斐波那契數(shù)列;2.實現(xiàn)無限序列,如自然數(shù)列;3.處理大數(shù)據(jù)或文件讀取,逐行處理避免內(nèi)存溢出;4.注意生成器只能遍歷一次,可用next()或for循環(huán)調(diào)用。

變量的魔力 變量的魔力 Jul 16, 2025 am 03:26 AM

VariableVariables是PHP中一種將變量值作為另一個變量名使用的特性,它通過$$var的形式實現(xiàn)動態(tài)訪問變量、處理表單輸入和構(gòu)建靈活配置結(jié)構(gòu)等功能。例如$name="age";echo$$name相當於輸出$age的值;常見使用場景包括:1.動態(tài)訪問變量,如${$type.'_info'}可根據(jù)條件選擇不同變量;2.處理表單輸入時自動賦值,但需注意安全隱患;3.構(gòu)建靈活的配置結(jié)構(gòu),通過字符串名稱獲取對應值;使用時需注意代碼維護性、命名衝突和調(diào)試難度等問題,建議僅

探索基本的PHP語法 探索基本的PHP語法 Jul 17, 2025 am 04:11 AM

PHP基礎語法包括:1.使用包裹代碼;2.用echo或print輸出內(nèi)容,其中echo支持多參數(shù);3.變量無需聲明類型,以$開頭,常見類型有字符串、整數(shù)、浮點數(shù)、布爾值、數(shù)組和對象。掌握這些要點有助於快速入門PHP開發(fā)。

了解PHP變量類型 了解PHP變量類型 Jul 17, 2025 am 04:12 AM

PHP有8種變量類型,常用包括Integer、Float、String、Boolean、Array、Object、NULL和Resource。要查看變量類型,可使用gettype()或is_type()系列函數(shù)。 PHP會自動轉(zhuǎn)換類型,但建議關鍵邏輯用===嚴格比較。手動轉(zhuǎn)換可用(int)、(string)等語法,但注意可能丟失信息。

了解PHP文件 了解PHP文件 Jul 17, 2025 am 04:13 AM

PHP文件是一種服務器端腳本語言文件,用於動態(tài)網(wǎng)頁開發(fā),能處理表單數(shù)據(jù)、連接數(shù)據(jù)庫、生成動態(tài)內(nèi)容、控制訪問權(quán)限。它以.php結(jié)尾,代碼在服務器上執(zhí)行後返回結(jié)果給瀏覽器。要運行PHP文件需安裝本地服務器環(huán)境如XAMPP,把文件放至服務器目錄並通過瀏覽器訪問。 PHP通常與HTML混合使用,建議學習前先掌握HTML、CSS、JavaScript及基本編程概念,多練習可快速上手。

常見的PHP變量錯誤 常見的PHP變量錯誤 Jul 17, 2025 am 04:08 AM

PHP變量使用常見錯誤包括未定義變量、引用賦值不當、類型比較不嚴謹和全局變量混亂。 1.忽略變量未定義會引發(fā)Notice錯誤,應使用isset()或empty()檢查;2.引用賦值修改變量會影響其他變量,應在循環(huán)後unset()清理;3.使用==會導致類型自動轉(zhuǎn)換,應優(yōu)先使用===進行全等判斷;4.全局變量易造成混亂,建議避免或封裝成類屬性以提高代碼清晰度。

了解PHP變量 了解PHP變量 Jul 17, 2025 am 04:11 AM

PHP變量以$開頭,命名需遵循規(guī)則,如不能以數(shù)字開頭、區(qū)分大小寫;變量作用域分為局部、全局和超全局;使用global可訪問全局變量,但建議用參數(shù)傳遞;可變變量和引用賦值需謹慎使用。變量是存儲數(shù)據(jù)的基礎,正確掌握其規(guī)則和機制對開發(fā)至關重要。

進行網(wǎng)絡掃描儀開發(fā) 進行網(wǎng)絡掃描儀開發(fā) Jul 17, 2025 am 03:30 AM

開發(fā)Go網(wǎng)絡掃描器需把握四個核心點:1.選擇合適的庫如net、gopacket;2.理解ICMP、TCP、SYN、UDP等底層協(xié)議;3.利用goroutine和channel設計並發(fā)機制並控制數(shù)量;4.確保掃描合規(guī)性避免濫用。網(wǎng)絡掃描基本方式包括ICMP探測主機存活、TCP/SYN/UDP端口檢測等,Go的net庫可實現(xiàn)基礎掃描,gopacket支持原始數(shù)據(jù)包操作。通過限制goroutine數(shù)量配合WaitGroup和緩衝channel可提升效率。注意事項包括合法授權(quán)、速率控制、避免公網(wǎng)大規(guī)模掃

See all articles