what the blog?

{upgrade in progress..}

讓終端機正確顯示輸入的 Unicode 中文

讓終端機正確顯示輸入的 Unicode 中文

昨天蘋果的技術支援網站貼出一篇標題為「How to Use High-Bit Characters in Terminal」的文章,文中說明要如何調整終端機的設定,以避免終端機將輸入資料視為是 7bit ASCII 碼,使得末位第 8 位元被截去,造成資料變成亂碼。在該文文末,有一段註明……

請按下閱讀全文就可詳讀此篇文章…

(全文開始)

昨天蘋果的技術支援網站貼出一篇標題為「How to Use High-Bit Characters in Terminal」的文章,文中說明要如何調整終端機的設定,以避免終端機將輸入資料視為是 7bit ASCII 碼,使得末位第 8 位元被截去,造成資料變成亂碼。

在該文文末,有一段註明,大意是:在開啟此項功能後,使用 tcsh/bash shell(殼層,系統的使用者界面,讓使用者能透過螢幕和鍵盤與電腦做文字上的溝通。Mac OS X 預設使用 tcsh。)的使用者,在命令列輸入的 8bit 字元,會以溢位資訊的形式顯示,僅 zsh shell 會以正常字體顯示。

這就是 bash shell 輸入中文後的樣子。

而下面是一則小技巧,讓 bash shell(請注意,是 bash,不是系統預設的 tcsh)能像 zsh shell 一樣以正常字體顯示輸入的文字。由於 Mac OS X 10.2 內建的 bash shell 是完整的 2.05a 版本,我們可以藉由修改 bash 命令列編輯界面 readline 的設定來解決這問題。readline 的啟動檔是 .inputrc,bash 啟動時,會先讀取這份啟動檔,並套用當中的設定。

使用者可用文書編輯器如 TextEdit 或 pico,在家目錄(~/)下新增名為 .inputrc 的檔案,並在內容輸入:

set convert-meta off
set meta-flag on
set output-meta on

這三行後存檔即可。在下一次啟動 bash shell 輸入資料時,就可在命令列看見正常顯示的中文字了。

這就是 bash shell 修改過 readline 設定後的結果。

以上的修改僅對 Mac OS X 10.2 之後的 bash shell 有效,tcsh shell 若要有相同的效果,則需重新編譯安裝,手續較為麻煩,在此撇開不談,也歡迎大家加入 bash shell 的行列。

levin • November 22, 2002


Previous Post

Next Post

Leave a Reply