⑴ linux系統,文件是utf-8格式的為什麼會亂碼呢
文件本向是UTF8的,但是你的系統當前用的可能不是,比如是GB2312,或者GBK之類的,這樣看utf8格式的文件就會是亂碼。
⑵ 如何解決linux上有中文命名的文件名壓縮後下載到windows上再解壓出來都是亂碼
Linux系統默認的字元編碼是 UTF-8 Windows 是 GBK 編碼,不支持UTF8. 所以 Linux下 的中文文件名到 Windwos下就成了亂碼。
解決辦法, 一個是 用英文文件名。 另一個,把Linux系統的文件名轉成GBK編碼的。 不過這種轉換有可能造成信息丟失。 因為 UTF8 不能 100% 轉換成GBK。 但GBK可以完全轉換成UTF8.
相關轉換命令是 convmv 可能需要安裝。
網路一下這個命令的用法。 轉換完了再打包, 到Window下應該就正常了。
還是建議你最好用英文名。
⑶ windows切換linux壓縮包亂碼怎麼辦
應該只有zip的格式會亂碼吧。
下載一個p7zip-plugins和convmv,在終端鍵入解壓命令:
LANG=C 7z x 文件名.zip
然後轉化字元編碼,從GBK字元編碼(cp936)轉成UTF-8字元編碼:
convmv -f cp936 -t utf8 -r * --notest
⑷ linux下zip文件解壓出現亂碼怎麼辦
壓縮包里是中文的吧, linux如果裝了中文語言支持的話,把語言環境設置一下 LANG=zh_CN.utf-8
⑸ 上傳到linux的zip解壓亂碼怎麼解決
解壓縮亂碼和zip本身無關,應該是你的Linux操作系統設置的系統語言造成的。
一般來講Linux的中文默認編碼是zh_CN.UTF-8,而Windows的是GB2312,如果你在Windows創建zip壓縮包,壓縮包中的文件名稱是按照GB2312打包的,到Linux解壓縮自然成了亂碼。
解決方法有兩種,可以將Linux的默認編碼變為zh_CN.GBK,這可以通過修改/etc/sysconfig/i18n文件來完成;另一種方法就是改用ftp傳遞未經壓縮的文件,這樣文件名會被FTP服務自動轉碼。
⑹ Linux中unzip解壓時中文亂碼如何解決
更改源碼解決亂碼
調試發現問題出現在MultiByteToWideChar方法里,
如 MultiByteToWideChar(CP_ACP,0,fn,-1,tfn,MAX_PATH); 到這里時fn中的name屬性值還是正常的,在這個方法內部執行完tfn就亂了。
解決方法:
打開unzip.cpp源文件,找到函數
ZRESULT TUnzip::Get(int index,ZIPENTRY *ze)
{ // ......
// ......} 12345
這個函數里有
#ifdef UNICODE
MultiByteToWideChar(CP_UTF8,0,fn,-1,tfn,MAX_PATH);#else
strcpy(tfn,fn);#endif12345
把 CP_UTF8 改為CP_ACP, ( CP_ACP 指示要使用當前設置的 API 默認 Windows ANSI 代碼頁)
重新編譯後
這樣就解決了解壓中文文件名稱亂碼的問題
編譯時解決源碼問題(無需更改源碼)
上面的情況,我們我觀察到unzip源代碼這段開始的地方有判斷
#ifndef Ext_ASCII_TO_Native 1
這樣問題似乎更簡單了,不用改源代碼,只需在make時定義 Ext_ASCII_TO_Native 即可,這樣 Ext_ASCII_TO_Native 實際為一個空的宏,不進行任何轉換操作。
比如,使用下面的方法編譯
make -DExt_ASCII_TO_Native 1
或者在bash執行下面兩行
export LOCAL_UNZIP=-DExt_ASCII_TO_Native
make12
unzip解壓縮含中文文件名zip包是出現亂碼的問題解決!
如果您的系統已經安裝了unzip
方法一 unzip行命令解壓,指定字元集
通過unzip行命令解壓,指定字元集
unzip -O CP936 xxx.zip (用GBK, GB18030也可以)1
方法二 在環境變數中,指定unzip參數
在環境變數中,指定unzip參數,總是以指定的字元集顯示和解壓文件
/etc/environment中加入2行
UNZIP=」-O CP936″
ZIPINFO=」-O CP936″12
方法三 利用pyton來處理
復制以下內容(python)保存未myuzip.py文件腳本,並修改運行許可權為可運行(chmod +x uzip)
#!/usr/bin/env python# -*- coding: utf-8 -*-# uzip.pyimport osimport sysimport zipfileprint "Processing File " + sys.argv[1]
file=zipfile.ZipFile(sys.argv[1],"r");for name in file.namelist():
utf8name=name.decode('gbk') print "Extracting " + utf8name
pathname = os.path.dirname(utf8name) if not os.path.exists(pathname) and pathname!= "":
os.makedirs(pathname)
data = file.read(name) if not os.path.exists(utf8name):
fo = open(utf8name, "w")
fo.write(data)
fo.close
file.close()
這樣以後我們解壓縮時只需要運行此文件即可
./myuzip.py xxxx.zip
⑺ linux下Ark打開zip中文顯示亂碼的解決方法
如下圖所示關掉 (Info-zip插件) 和 (Libzip插件)
確保P7zip插件處於打開狀態
最後一定要點擊確定。
關掉軟體重新打開zip的壓縮包你試試。顯示出中文了吧。
⑻ 通過java控制linux環境下解壓文件夾後中文文件名是亂碼
壓縮成rar格式的再試試
⑼ 關於linux下壓縮包.tar.7z在vista下解壓變亂碼的問題
字元集問題,如果是word,一般打開後會自動調整字元集,另存為一遍就行了。
文件名就沒辦法了,只能自己慢慢改,因為同樣是字元集問題,但屬於系統字元集,linux一般用utf,windows一般用GB。
注意一件事,如果是多系統通用文件,最好用英文做文件名,哪怕是拼音。
沒辦法,誰叫計算機的基礎是英文呢。
⑽ 如何解決linux上有中文命名的文件名壓縮後下載到windows上再解壓出來都是亂碼
Linux系統默認的字元編碼是 UTF-8 Windows 是 GBK 編碼,不支持UTF8. 所以 Linux下 的中文文件名到 Windwos下就成了亂碼。關於這個linux系統的學習,我一直看劉遄老師的書籍《linux就該這么學》,感興趣的也可以去看看啊。
解決辦法, 一個是 用英文文件名。 另一個,把Linux系統的文件名轉成GBK編碼的。 不過這種轉換有可能造成信息丟失。 因為 UTF8 不能 100% 轉換成GBK。 但GBK可以完全轉換成UTF8.
相關轉換命令是 convmv 可能需要安裝。
網路一下這個命令的用法。 轉換完了再打包, 到Window下應該就正常了。
還是建議你最好用英文名。