不同語言的Windows系統下的檔案解壓

sxb_sunday發表於2024-04-21

最近參加公司的培訓課程,由於我在日本出差,培訓課程的資料檔案,本部是以壓縮包的形式郵件傳送給我的,附件下載後用Windows自帶的WinRAR工具解壓之後,檔名中的日文漢字亂碼了。
image
我的解決辦法是
首先下載專業的7z壓縮工具,據說這是目前壓縮率最高的解壓縮開源工具。下載地址https://www.7-zip.org/download.html根據自己的作業系統選擇合適的安裝程式,我的是基於x64處理器的64位作業系統。
image
下載完直接安裝,然後在安裝目錄下開啟命令列終端,執行下面命令,就可以正常解壓縮了。

我的安裝目錄是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
    這樣解壓出來的檔名就能正常表示了。
    image

原因這裡也做一個簡單的解釋
是因為不同的作業系統,預設的文字編碼不一樣,WinRAR或者7z壓縮和解壓檔案的時候,是依據當前系統的預設編碼的,也就是給我傳送壓縮檔案的部門負責人的系統是日文系統,預設編碼是932日文(Shift-JIS),而我的電腦是從國內帶來的,預設編碼是936中國 - 簡體中文(GB2312),壓縮和解壓縮用的編碼格式不一樣,當然檔名也就亂碼了。所以還有一個解決辦法就是,改變自己系統的編碼,比如從936中國 - 簡體中文(GB2312)改到932日文(Shift-JIS),這樣就和壓縮方的編碼格式一致了,可以正常解壓縮。

修改辦法

image

image
把這個裡面的語言設定為對應壓縮檔案的系統的語言就可以了,比如日語。

但是注意這有一個問題,修改完後,部分使用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)
65001 Unicode (UTF-8)常常是通用的文字編碼。

相關文章