在 Mac OS X 與 Windows/Linux 之間的檔案交換

雖然自己的 Desktop 用的是 Mac OS X (UTF-8 的環境)
但畢竟週遭的其他人,用的還是以 Windows 為主
加上自己的 Linux Server 用的還是 Big5 的環境
因此在不同的作業系統及編碼環境下,想要互相傳送或交換檔案就變得很重要
但偏偏在 Mac 上壓縮的檔案(不管 zip or tar.gz 等等),傳到 Windows or Linux 下,若裡面有包含中文檔名,那解開就會是亂碼
同樣的,從 Windows or Linux 傳過來的檔案,在 Mac OS X 上解開,也會是亂碼(用 Stuffit Expander 解好像比較正確一點)
解決方法,雖然可以用 Samba 或是有支援轉碼的 FTP Client(如 Transmit or CyberDuck),但若是要壓縮起來寄給別人時,就出現麻煩了
在不使用到其他要錢的商業軟體的情況下,因此,從 tar 下手似乎是一個方法 (perl Archive::Tar 可以更改 tar 裡的檔名)
用 tar + gz 壓縮的檔至少在 Windows and Linux 上應該都可以解開
於是,用我那 n 年未碰的 perl,辛辛苦苦拼湊出了 b5tar.pl 及 u8tar.pl 兩支程式
可以用來把 big5 編碼的 tar 檔轉成 utf8 編碼,或是把 utf8 的編碼轉成 big5 編碼
這樣,上述的問題就可以解決了
用法如下:
b5tar.pl u8.tar (會轉換並產生 Big5 編碼的 b5-u8.tar)
b5tar.pl -z u8.tar.gz (會轉換並產生 Big5 編碼的 b5-u8.tar.gz)
u8tar.pl b5.tar (會轉換並產生 UTF-8 編碼的 u8-b5.tar)
u8tar.pl -z b5.tar.gz (會轉換並產生 UTF-8 編碼的 u8-b5.tar.gz)
加上 -z 表示有使用 gzip 來壓縮

One Response to “在 Mac OS X 與 Windows/Linux 之間的檔案交換”

  1. Chung-Yen Chang Says:

    重新改寫成一支程式,可以指定 (from encoding) and (to encoding)

    Usage: mytar.pl [options] filename
    options:
    -f|–from from encoding (Def: utf8)
    -t|–to to encoding (Def: big5)
    -o|–output output filename (Def: my-filename)
    -z use gzip

    程式:
    mytar.pl

FireStats icon Powered by FireStats