一般在Widnows下如果遇到要在正體中文的環境下執行日文的軟體,通常因為系統使用編碼不同的緣故會造成界面顯示上的亂碼或是無法正常運作。這時 候在Windows XP下的解決方法是安裝Applocale這個小工具,就可以透過這個小工具來執行使用其他語系編碼的程式。使整個系統環境不會局限在預設使用的系統編碼 限制裡,而有相當大的自由度。在Linux下同樣有這樣的功能,而且更方便,更強大。基本上是裝都不用裝,系統直接就有這種功能。而且支援的語言國系和系 統編碼的量遠超超比Applocale還多,想知道有多少嗎?直接在命令模式下達以下的指令就知道有多少了。
# locale -a你會看到有一大堆的代號出現,每一個代號都代表一個編碼。之後會列出一些比較常用國的編碼。如果想知道您現在系統裡正常使用的是那一種編碼可以在命令模式下達以下的指令:
# locale如果沒有意外的話,應該會是zh_TW丶zh_TW.big5丶zh_TW.utf8三種的其中之一種。zh_TW是表示台灣正體中文的代 碼,而後面的big5和utf8則是使用的編碼方式。zh_TW.big5就表示是台灣正體中文語系的big5編碼方式(也就是俗稱的大五碼),而 zh_TW.utf8則是台灣正體中文語系的utf8編碼方式(俗稱萬國碼,現在大部份系統都是使用這個)。
平常系統在執行程式時都 是以系統預設的語系和編碼來執行的,也就是使用 # locale 指令時所看到的設定值。但是如果我們在執行程式時想要指定語系編碼的話,只要在執行的同時改變系統的環境變數就好了,但是每次執行都要改來改去是相當麻煩 的一件事,但在linux下可以使用 env 指令來做“暫時性”的改變環境變數。舉個列子來說,如果有個文件檔是簡體中文的GB2312編碼,所以在正體中文的環境下用 gedit編輯器開啟的結果會使文字都是亂碼,如果在執行 gedit 時改變一下指令,如下:
# env LC_ALL=zh_CN.gb2312 gedit再用這個gedit編輯器去打開原先那個簡體中文的文件,就會發現文字不再是亂碼了,而是看得懂的簡體中文(如果原本就看不懂簡中的人別說還 是亂碼)。這個指令並不會影響到原本在系統中的變數,所以不用擔心會更改到原先系統的語系和編碼方式。這個設定只作用在指定的程式裡而已。
當然這個用法可以適用的不只是gedit而已,同樣可以作用在平常使用的所有linux程式中。
# env LC_ALL=語系編碼 執行檔名
這個設定可以使 wine 丶 skype都能用scim來輸入中文,但仍有些問題,這個日後再討論。
有個有趣 的現象,在linux環境下開發的程式,有許多原本就是支援多國語言的,所以如果看不慣中文翻譯的朋友,可以使用這個方法將介面切換回英文。但是要注意一 點,就是改語系就好,儘量不要改編碼方法,也就是說,如果你的系統是使用utf8的正體中文,那麼最好能切換成英文的utf8編碼,這牽涉到檔案結構的編 碼問題,錯誤的編碼會使中文命名的檔案或目錄無法被正確的讀取。這點要特別注意。
以下是幾個常用的語系編碼:
zh_TW 正體中文
zh_TW.big5 正體中文.大五碼
zh_TW.utf8 正體中文.萬國碼
zh_CN 簡體中文
zh_CN.gb2312 簡體中文.gb2312編碼
zh_CN.gbk 簡體中文.gbk編碼
zh_CN.utf8 簡體中文.萬國碼
ja_JP 日文
ja_JP.ujis 日文.ujis編碼
ja_JP.utf8 日文.萬國碼
en_US 英文
en_US.iso88591 英文.iso88591編碼
en_US.iso885915 英文.iso885915編碼
en_US.utf8 英文.萬國碼