csv檔案亂碼

2021-09-19 22:17:13 字數 1029 閱讀 4402

問題描述:

生成的csv檔案,設定為utf-8格式,在windows上用excel開啟的話會亂碼,在linux上用vim或者cat開啟檢視正常;設定為gbk格式的話,在windows上用excel開啟正常,但在linux上亂碼

解決方法:

在csv檔案頭部的最前面加bom

bom(byte order mark)

,是 utf編碼方案裡用於標識編碼的標準標記,在 utf-16裡本來是 ff fe,變成 utf-8就成了 ef bb bf。這個標記是可選的,因為 utf8位元組沒有順序,所以它可以被用來檢測乙個位元組流是否是 utf-8編碼的。微軟做這種檢測,但有些軟體不做這種檢測,而把它當作正常字元處理。

**如下:

file

file

=new

file(

ospfilename);

outputstream

stream

=new

fileoutputstream(

file);

stream

.write(

new

byte

);csvwriter

ospwriter

=new

csvwriter(

stream

,','

, charset.forname(

"utf-8"

));

string

osphead

=new

string;

ospwriter

.writerecord(

osphead);

這樣的話,在windows上用excel開啟就不會是亂碼,linux上也顯示正常;

雖千萬人,吾往矣!

匯出csv檔案有亂碼

專案中生成csv檔案,裡面出現中文亂碼問題,後來加了一行out.write 0xfeff 後問題就解決了。res.setheader content disposition attachment filename name csv out.write 0xfeff out.write sb 這裡有乙...

資料庫CSV檔案亂碼

前段時間用某軟體匯出了乙個csv檔案,需要在excel中處理並列印,但是我直接用excel開啟這個csv檔案卻發現,檔案中的所有中文字元都變成了亂碼,經過自己的嘗試,採用資料匯入的方法解決了問題,後來又搜了一下,發現還有其他方法,資料匯入只是其中一種而已。現在整理總結一下 方法1 資料匯入 試用成功...

csv 檔案用Excel開啟亂碼

最近在做乙個上傳的功能,記錄下自己的感受。剛開始我用的是excel上傳 但是發現客戶伺服器有用64位的,使用的時候程式會報錯 未在本地計算機上註冊 microsoft.jet.oledb.4.0 提供程式經查閱資料,發現是excel對64位的相容性很差 64位作業系統不支援microsoft ole...