最近參加公司的培訓課程,由於我在日本出差,培訓課程的資料檔案,本部是以壓縮包的形式郵件傳送給我的,附件下載後用Windows自帶的WinRAR工具解壓之後,檔名中的日文漢字亂碼了。
我的解決辦法是
首先下載專業的7z壓縮工具,據說這是目前壓縮率最高的解壓縮開源工具。下載地址https://www.7-zip.org/download.html根據自己的作業系統選擇合適的安裝程式,我的是基於x64處理器的64位作業系統。
下載完直接安裝,然後在安裝目錄下開啟命令列終端,執行下面命令,就可以正常解壓縮了。
我的安裝目錄是D:\Program Files\7-Zip
.\7z.exe x "C:\Users\27643\Downloads\0417.zip" -oC:\Users\27643\Downloads\ -mcp=932
- x 是解壓檔案命令,
- "C:\Users\27643\Downloads\0417.zip" 是要解壓的目標檔案路徑,
- -oC:\Users\27643\Downloads\ 是解壓後檔案的存放路徑,
- -mcp=932 是解壓指定文字編碼為日文作業系統的預設編碼格式-ShiftJIS
這樣解壓出來的檔名就能正常表示了。
原因這裡也做一個簡單的解釋
是因為不同的作業系統,預設的文字編碼不一樣,WinRAR或者7z壓縮和解壓檔案的時候,是依據當前系統的預設編碼的,也就是給我傳送壓縮檔案的部門負責人的系統是日文系統,預設編碼是932日文(Shift-JIS),而我的電腦是從國內帶來的,預設編碼是936中國 - 簡體中文(GB2312),壓縮和解壓縮用的編碼格式不一樣,當然檔名也就亂碼了。所以還有一個解決辦法就是,改變自己系統的編碼,比如從936中國 - 簡體中文(GB2312)改到932日文(Shift-JIS),這樣就和壓縮方的編碼格式一致了,可以正常解壓縮。
修改辦法
把這個裡面的語言設定為對應壓縮檔案的系統的語言就可以了,比如日語。
但是注意這有一個問題,修改完後,部分使用932編碼的程式會出現路徑讀取,配置檔案讀取等的問題,尤其對於很多開發工具。我還遇到修改完之後英雄聯盟客戶端打不開的情況,恢復成936編碼後又好了。
檢視當前系統內碼表的命令
chcp
下表列出了所有支援的內碼表及其國家(地區)或者語言:
點選檢視程式碼
內碼表 國家(地區)或語言
437 美國
708 阿拉伯文(ASMO 708)
720 阿拉伯文(DOS)
850 多語言(拉丁文 I)
852 中歐(DOS) - 斯拉夫語(拉丁文 II)
855 西里爾文(俄語)
857 土耳其語
860 葡萄牙語
861 冰島語
862 希伯來文(DOS)
863 加拿大 - 法語
865 日耳曼語
866 俄語 - 西里爾文(DOS)
869 現代希臘語
874 泰文(Windows)
932 日文(Shift-JIS)
936 中國 - 簡體中文(GB2312)
949 韓文
950 繁體中文(Big5)
1200 Unicode
1201 Unicode (Big-Endian)
1250 中歐(Windows)
1251 西里爾文(Windows)
1252 西歐(Windows)
1253 希臘文(Windows)
1254 土耳其文(Windows)
1255 希伯來文(Windows)
1256 阿拉伯文(Windows)
1257 波羅的海文(Windows)
1258 越南文(Windows)
20866 西里爾文(KOI8-R)
21866 西里爾文(KOI8-U)
28592 中歐(ISO)
28593 拉丁文 3 (ISO)
28594 波羅的海文(ISO)
28595 西里爾文(ISO)
28596 阿拉伯文(ISO)
28597 希臘文(ISO)
28598 希伯來文(ISO-Visual)
38598 希伯來文(ISO-Logical)
50000 使用者定義的
50001 自動選擇
50220 日文(JIS)
50221 日文(JIS-允許一個位元組的片假名)
50222 日文(JIS-允許一個位元組的片假名 - SO/SI)
50225 韓文(ISO)
50932 日文(自動選擇)
50949 韓文(自動選擇)
51932 日文(EUC)
51949 韓文(EUC)
52936 簡體中文(HZ)
65000 Unicode (UTF-7)
65001 Unicode (UTF-8)