Next Previous Contents

9. 其它軟體的中文相關問題

9.1 Netscape Navigator

有許多網頁都討論這個問題。Netscape (2.0 版以後) 同時支援 BIG5 及 GB 編碼。要在 Netscape 下顯示中文有三個步驟:

  1. 安裝 X 的中文字型。請參考 安裝中文字型 一節。
  2. 執行 netscape,將 Document Encoding 設定為 Tranditional Chinese (Big5)Simplified Chinese.
  3. 選擇你要使用的中文字型。
或許你會奇怪為何你只能使用 Fixed(HKU) Size 16.0。這是因為 /usr/X11R6/lib/X11/app-defaults/Netscape 的設定。 假設你有下列這些 BIG5 字型
# xlsfonts | grep big5
-hku-fixed-medium-r-normal--0-0-72-72-c-0-big5.hku-0
-hku-fixed-medium-r-normal--16-160-72-72-c-160-big5.hku-0
-kc-kai-medium-r-normal-fantizi-0-0-75-75-c-0-big5.eten.3.10-1
-kc-kai-medium-r-normal-fantizi-20-200-75-75-c-200-big5.eten.3.10-1
-kc-kai-medium-r-normal-fantizi-24-240-75-75-c-240-big5.eten.3.10-1
-kc-ming-medium-r-normal-fantizi-0-0-75-75-c-0-big5.eten.3.10-1
-kc-ming-medium-r-normal-fantizi-15-150-75-75-c-160-big5.eten.3.10-1
-kc-ming-medium-r-normal-fantizi-24-240-75-75-c-240-big5.eten.3.10-1
/usr/X11R6/lib/X11/app-defaults/Netscape 上加一行
*documentFonts.charset*big5.eten.3.10-1:              x-x-big5
如此 Netscape 就能夠使用這些字型了。

另一個解決的方法是為你的字型名稱加上別名(alias): 在你的字型目錄下的 fonts.alias 檔案中加(如果沒有這個檔案就自己建)

-big5-taipeik-medium-r-normal--16-160-72-72-c-160-big5.hku-1 taipei16
-big5-taipeik-medium-r-normal--20-200-72-72-c-200-big5.hku-1 taipeik20
-big5-taipeik-medium-r-normal--24-240-72-72-c-240-big5.hku-1 taipeik24

其中 taipeik20 等你是要為它取別名的字型名稱。修改過要後用

# xset fp rehash
重新載入字型名稱才會生效。

你可能會發現在中英文夾雜的網頁裡中英文字型的比例並不正確(如英文字太小)。這是因為你的選用的英文字型和中文字型大小並不配合的緣故。 回到字型設定中選 Western(iso-8859-1), 然後更改英文字型的大小。調到你認為適當的大小比例即可。

9.2 sendmail

因為 sendmail 8.8.x 預設會將所有 8-bit 的信件編碼後再送出,這或多或少會對收信人造成一些影響(參見 下一小節 的解決方法)。 現在大部份的主機都已能直接傳送 8-bit 的信件,所以你最好重新編譯 sendmail, 將編碼功能關掉。

9.3 procmail

procmail 是一個電子郵件過濾器(mail filter). 它可將到的信件在存入你的信箱前先做處理,例如將信件分類等。 不過這裡要教你的是如何利用 procmail 來將被編碼的中文信件解碼成純文字,以及在不同編碼的信件轉換為你常用的編碼。

在你的 home 目錄下建立 .procmailrc 檔案,內容如下:


# 在用 procmail 處理前先將信件儲存下來,以免發生意外
# 你可以設定那些信件不必備份,例如由 MAILER-DAEMON 來的退信
:0 c
* !^From.*MAILER-DAEMON
mail/procmail-backup

# 將以 quoted-printable 或 base64 編碼的信件解碼
:0
* ^Content-Type: *text/plain
{
    :0 fbw
    * ^Content-Transfer-Encoding: *quoted-printable
    | mimencode -u -q

        :0 Afhw
        | formail -I "Content-Transfer-Encoding: 8bit" \
                  -I "X-Mimed-Autoconverted: quoted-printable to 8bit by procmail"

    :0 fbw
    * ^Content-Transfer-Encoding: *base64
    | mimencode -u -b

        :0 Afhw
        | formail -I "Content-Transfer-Encoding: 8bit" \
                  -I "X-Mimed-Autoconverted: base64 to 8bit by procmail"
}

# 這裡判斷信件是否為 GB 編碼,若是則轉為 BIG5 編碼
# 如果你要由 BIG5 轉為 GB 碼,要將例子中所有的 big5
# 及 gb2312 互換,並將 hc -m b2g 改為 hc -m g2b

:0
* ^Content-Type:.*text/plain;.*charset=gb2312
{
    :0 fw
    | hc -m b2g -t /usr/local/lib/chinese/hc.tab

        :0 Afhw
        | formail -I "Content-Type: text/plain; charset=big5" \
                  -I "X-Charset-Autoconverted: gb2312 to big5 by procmail"
}

# 將信件存回信箱
:0:
${ORGMAIL}

這個例子中,配合了 mimencode, formail 將信件解碼,並用 hc 將 GB 編碼的信件轉為 BIG5 編碼。所以你還必須安裝這些工具。

最後再將更改你的 .forward 檔就可以了

"|IFS=' ' && exec /usr/bin/procmail -f- ~/.procmailrc ||exit 75 name"
注意: 其中最後的 name 要改為你自己的簽入名稱(login name).

9.4 telnet

如果你在自己的機器上可以輸入中文,但 telnet 到別的機器後卻無法輸入中文,那麼問題可能出在 telnet 程式上。 當你還在 telnet 連線中時可以按 Ctrl-] 跳出,在 telnet> 提示符號下輸入 set binary 即可。 你也可以在連線時用 telnet -8. (但是在連某些站台時會出問題...?)

另一個較簡單的辦法是直接改用可傳輸 8-bit 的 telnet 程式。從下面地點可取得執行檔:

ftp://linux.cis.nctu.edu.tw/packages/chinese/misc/

9.5 less

less 本身就可直接顯示中文了,只要設定下面的環境變數即可:

# export LESSCHARSET=latin1

9.6 pine

Pine 3.95 版以後就可以支援閱讀及輸入中文信件了。進入 pine 之後選 SETUP/Configfeature list 中勾選(按 X):

   [X]  enable-8bit-esmtp-negotiation
   [X]  enable-8bit-nntp-posting

然後在 character-set 上按 C, 將其值改為 big5 或 gb2312. 按 E 脫離儲存即可。

你也可以安裝能顯示中文訊息的 cpine:

ftp://ftp.vit.edu.tw/unix/linux/chinese/cpine-3.91.bin.tgz

9.7 samba

9.8 lynx

Lynx v2.7 已經可直接接觀看中文的網頁了。執行 lynx, 按 O)ption / C)haracter set, 按上下鍵選 Taipei(Big5),再按 '>' 存檔即可。

9.9 minicom

啟動 minicom 時加上 -l 選項即可顯示中文。

9.10 fingerd

如果你在你的 .plan 中使用中文別人卻看不到,那可能是因為你的 fingerd 無法送出 8-bit 的中文字。 到下面地點取回 cfingerd:

ftp://nctuccca.edu.tw/OS/Linux/packages/network/finger/cfingerd-1.3.2.tar.gz

解開後,執行 ./Configuremake all 即可。

再來修改 /etc/inetd.conf, 將原來 finger 的項目改為:

finger  stream  tcp     nowait  root    /usr/sbin/tcpd  /usr/sbin/in.cfingerd

最後讓 inetd 重新讀入設定檔:

# kill -HUP `cat /var/run/inetd.pid`

9.11 tintin++

TinTin++ 並非中文軟體。它只是在你玩中文 mud 時非常的有用。你可在此取得:

ftp://ftp.princeton.edu/pub/tintin++

下面是一些中文 mud 站:

FengYun                  fengyun.com       5555
Xi You Ji                129.105.79.24     6905
Xia ke Xing              207.76.64.2       5555


Next Previous Contents