?? chinese-howto-2.html
字號(hào):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
<TITLE>Linux Chinese HOWTO 中文版: 在 Linux 上使用中文的困難</TITLE>
<LINK HREF="Chinese-HOWTO-3.html" REL=next>
<LINK HREF="Chinese-HOWTO-1.html" REL=previous>
<LINK HREF="Chinese-HOWTO.html#toc2" REL=contents>
</HEAD>
<BODY>
<A HREF="Chinese-HOWTO-3.html">Next</A>
<A HREF="Chinese-HOWTO-1.html">Previous</A>
<A HREF="Chinese-HOWTO.html#toc2">Contents</A>
<HR>
<H2><A NAME="s2">2. 在 Linux 上使用中文的困難</A></H2>
<P>本節(jié)試圖將在 Linux 上使用中文可能遭遇的困難,做一通盤(pán)的描述。如此當(dāng)你遇到問(wèn)題時(shí),可能比較容易找出關(guān)鍵所在。其實(shí)這里描述的困難也不僅僅出現(xiàn)在 Linux 上,許多也同時(shí)出現(xiàn)在其它系統(tǒng),甚至整個(gè)電腦使用環(huán)境上。
如果你沒(méi)有興趣或真的很著急的話,就直接跳到
<A HREF="Chinese-HOWTO-4.html#view">顯示及輸入中文</A> 那節(jié)吧!
<P>我們知道中文字在電腦上是由兩個(gè)位元組(two bytes)所編碼組成的。最常見(jiàn)的編碼方式有臺(tái)灣地區(qū)所通行的 big5 編碼,及大陸地區(qū)所使用的 GB 編碼。
而且開(kāi)頭的位元組幾乎都是大於 128 的數(shù)值,也就是所謂 non-ASCII 碼的□圍(ASCII 是指小於 128 的編碼)。
<P>好的! 那又怎麼樣呢? 問(wèn)題就在這! 許多程式由於各式各樣的原因,并未考慮到輸入的資料可能是 non-ASCII 碼的問(wèn)題。
它往往假設(shè)了它所要處理的資料都是 ASCII 碼,更糟糕的是,當(dāng)它遇到 non-ASCII 碼時(shí),常常假設(shè)它不存在,而將它的第八個(gè)位元截去!
這是所謂的 8-bit clean 問(wèn)題。
<P>例如,你的 <CODE>
<A HREF="Chinese-HOWTO-9.html#telnet">telnet</A></CODE> 程式總是認(rèn)為你輸入的都是七位元的 ASCII 碼。當(dāng)你輸入中文時(shí),每每將第八位元砍掉,所以都變成亂碼。
<P>網(wǎng)路上的通訊程式也常常只能傳輸七位元的資料。較早期的 <CODE>sendmail</CODE> 程式就是惡名昭彰的例子。
<CODE>sendmail</CODE> 只能接送含七位元的信件,導(dǎo)致我們?cè)趥魉椭形男偶r(shí),必須采用各式各樣奇怪的
<A HREF="Chinese-HOWTO-9.html#procmail">編碼格式</A> (如 uuencode, base64, QP 等),這往往又為收信者帶來(lái)很大的困擾!
(我常在想如果當(dāng)初電子郵件的創(chuàng)造者能多一點(diǎn)點(diǎn)的遠(yuǎn)見(jiàn),我們今天就會(huì)少許多的問(wèn)題!)
<P>在網(wǎng)路上這個(gè)問(wèn)題顯得更為復(fù)雜。即使你和你的收信人的機(jī)器都已經(jīng)安裝了可以處理中文信件的 <CODE>sendmail</CODE> 程式,對(duì)方仍有可能收到亂碼信件。
因?yàn)檫@封信在到達(dá)對(duì)方手中前可能經(jīng)過(guò)好多部主機(jī),如果其中一部機(jī)器的 <CODE>sendmail</CODE> 將第八位元截去,事情就完了!
對(duì)於 client/server 架構(gòu)的程式,問(wèn)題可能出在 client 端,也可能是在 server 端,或是雙方都有。
<P>除了無(wú)法處理 non-ASCII 碼資料的問(wèn)題之外,應(yīng)用程式無(wú)法辨識(shí)中文編碼也是一大問(wèn)題。
也就是,很多程式(即使能正確處理八位元的資料)都將一個(gè)中文字視為兩個(gè)獨(dú)立的位元組。這在許多情況下不會(huì)有什麼不好,但在某些場(chǎng)合下就顯得很糟!
<P>最顯然的例子,即使你能正確的輸入中文,可是當(dāng)你按下倒退鍵(backspace)時(shí),往往只倒後了一個(gè)位元組而將一個(gè)好好的中文字截成兩半,剩下的那半當(dāng)然就成了亂碼。
還有,文書(shū)編輯器可能在一個(gè)中文字中間換行而導(dǎo)致出現(xiàn)亂碼,或是將一行很長(zhǎng)的中文句子當(dāng)作一個(gè)很長(zhǎng)的英文字母而不換行,使得畫(huà)面變得很難看。
<P>還有更糟的! 某些中文字所含的特殊內(nèi)碼對(duì)某些應(yīng)用程式具有特別的意義,這導(dǎo)致程式遇到這些內(nèi)碼時(shí)將產(chǎn)生嚴(yán)重的錯(cuò)誤,或是當(dāng)?shù)簟?<P>下面將試著為這些問(wèn)題提出一些解決之道,但是這仍是片面的,不完全的,而且不能令人滿意。
也許只有當(dāng)所有的軟體都能為中文量身打造時(shí)問(wèn)題才可能真正的解決。
<P>話雖如此,愈來(lái)愈多的程式在設(shè)計(jì)上已經(jīng)注意到國(guó)際化的問(wèn)題,例如現(xiàn)在大部分主機(jī)的 <CODE>
<A HREF="Chinese-HOWTO-9.html#sendmail">sendmail</A></CODE> 程式都已經(jīng)能正確處理 8-bit 的信件 --- 因?yàn)椴粌H僅是傳輸中文信件需要 8-bit, 現(xiàn)在很多的多媒體郵件也都需要用 8-bit 傳送。
<A HREF="Chinese-HOWTO-9.html#other">很多軟體</A> 已經(jīng)完全不需修改,或者只要開(kāi)啟一些特殊的選項(xiàng),就能使用中文。
同時(shí)也有愈來(lái)愈多人正在為軟體的中文化而努力。且讓我們拭目以待。
<P>
<P>
<HR>
<A HREF="Chinese-HOWTO-3.html">Next</A>
<A HREF="Chinese-HOWTO-1.html">Previous</A>
<A HREF="Chinese-HOWTO.html#toc2">Contents</A>
</BODY>
</HTML>
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -