問題描述:
生成的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...