1. 程式人生 > >WEB_tar打包 後中文檔名亂碼的問題

WEB_tar打包 後中文檔名亂碼的問題

tar zcvf xxx.tar.gz *files 

tar jcvf xxx.tar.bz2 *files 

因檔名有中文字元,放到windows的機器上後解壓中文變成亂碼。 

7zip和rar會記錄字符集,自動轉換,而tar不會: 

比如 “中國.txt”,utf-8下編碼是e4b8ade59bbd,tar裡面記錄的是e4b8ade59bbd.tar,然後gbk下中國不是e4b8ade59bbd,所以就是亂碼了,zip也不儲存字符集。 

在linux下只能用rar或者7zip處理中文檔名的檔案。 

=================================================== 

歸根結底是因為linux和windows字符集設定得不同: 

windows的機制是本地編碼來記錄檔名,本地編碼的字符集是跟Locale(多語種支援)相關的,而Locale又跟你安裝系統所選區域語言有關,由此,windows支援很多種字元

碼的,跟你安裝的linux的字元編碼並不一定一致,而且單單中文的編碼就有很多種,所以你只需要將兩個對應系統的字元編碼設定為相同即可。 

1. #LANG="跟windows統一的字符集" SYSFONT="latarcyrheb-sun16" SUPPORTED="跟windows統一的字符集:x:x" 

當然,用工具軟體方便得多,像7zip等都可以實現。