2018年7月17日 星期二

Linux Zip file Big5中文問題

本篇文章參考自 G. T. Wang的文章 , 以及 samwhelp/book-ubuntu-qna 此兩篇應該是參考自Ubuntu社群討論區: 解壓縮zip檔,產生亂碼,如何解決的心得

因為常常遇到

所以乾脆記錄下來

自己忘記也可以翻找

常常在Windows壓縮zip檔案後

拿到Linux環境解壓縮會是亂碼

因為Windows利用Big5編碼將中文檔名壓縮

解壓縮時通常是用UTF-8的編碼解壓縮 

因為編碼不一樣所以解壓縮出來的檔名就變成亂碼

目前看到有兩種作法
(以下用Debian系列(Debian, Ubuntu, Mint, Lubuntu...)的系統做示範)

1. 第一種作法比較簡單直接用unzip設定編碼類型

首先先確定已經安裝了unzip

unzip -h

如果出現command not found 就安裝一下

sudo apt install unzip

安裝好後利用以下指令確認編碼是不是Big5

unzip -O big5 -l <target file>

target file請輸入想要解壓縮的檔案名稱

-l 代表示查看檔案內容而不解壓縮

如果可以看見正確的中文檔名代表的確是用big5編碼的

接下來就可以使用

unzip -O big5 <target file>

來解壓縮檔案

2. 另外也可以用convmv這個套件來將big5編碼的檔名轉換程UTF8

首先一樣確認convmv有無安裝

convmv --help

如果出現Command not found就安裝一下
sudo apt-get install convmv

利用unzip解壓縮zip檔為C語言編碼

LANG=C unzip <target file>

LANG=C代表使用C語言的 ASCII code方式編碼
(也可以把LANG=C 改成 LANG=zh_TW.Big-5)
target file為你要解壓縮的檔案名稱

解壓縮完之後再用convmv來轉換編碼

convmv -f big5 -t utf8 -r --notest *

沒有留言:

張貼留言

Go lang 學習筆記 - 17 Pointers

``` package main import "fmt" func zeroval(n int) {         n = 0 } func zeroptr(n *int) {         *n = 0 } func main() {         ...