最近公司終於弄了 Linux 的跳板機 XDD .. 操作 Linux Server 整個方便超多,但是改用 Linux 後發現有其他問題要解 … 像是有些檔案的編碼在 Linux 上編輯會有問題。
在維護的主機上放有各種編碼的設定檔,但是這些設定檔因為程式 Library 的關係無法隨意修改編碼,所以原本在 Windows 跳板機上是用 Notepad++ 編輯,而 Linux 就要另尋他法。
在 Linux 編輯不外乎就是 vi / vim,在沒有更好的解決方案之前,我應該還是會以大眾會使用的工具來做。
利用工程師餵狗 (Google) 的技術果不其然總是會找到解決方案,vim 支援 fileencodings 的方式讓你支援更多編碼的檔案
一般狀況下我需要 UTF-8,特殊情況下我需要 Big5 或者更多,所以我直接在大家登入跳板機都會讀取到的 /etc/vimrc 加入設定:
set fileencodings=ucs-bom,utf-8,big5,gb18030,euc-jp,euc-kr,latin1
set fileencoding=utf-8
set encoding=utf-8
設定 fileencodings 必須要特別注意「順序」的問題,我有一個 Big5 的檔案,但是由於 GB18030 和 Big5 太像,如果把 GB18030 放在前面就會判定為 GB18030 的編碼,但其實他是 Big5 … 這常在簡體中文、繁體中文間的編碼會判定錯誤,必須特別小心。