- 電子中文文字學 (Chinese Electronic Character Study)
- 這是一個很誇大的名詞. 是我自創的名詞, 有點危險.
別人能不能承認, 就等著瞧吧. 為了將中國字電子化,
我們必須確定它們的編碼, 字形, 字體, 字樣; 並確定它們的附屬性質,
包括筆畫數, 部首, 主要讀音和破音, 等等.
為了達成上述目標, 所引發的所有理論上與技術上的研究,
就稱為電子中文文字學.
- 字 (character)
- 我是跟隨中研院的謝清俊教授的觀念而下這個定義.
這是一個抽象的觀念. 一個中國字是一個代表了某些觀念或意義,
它可能對應幾種不同的圖騰, 幾種不同的讀音.
- 字圖 (glyph)
- 將抽象觀念的字, 以一個有形的圖騰畫出來的樣子.
例如台與臺是同一個字的兩個字圖.
又例如在繁體字與簡體字之間, 同樣的字有不同的字圖,
比如說言這個字就有簡繁兩種字圖.
字圖只決定一個字的基本幾何結構, 包括筆畫的組合方式, 筆畫的相對位置與長度.
- 字體 (style)
- 每一個字圖都可以有不同的表現風格.
例如楷書是一種字體, 隸書, 明體, 仿宋體, 篆體等等, 都是不同的字體.
但是, 俗話常說的繁體字與簡體字, 其實說的是字圖的不同, 而非字體.
- 字樣 (typefont)
- 針對某一個字的特殊字圖, 特殊字體, 所做的真實的實現 (implementation).
比如說華康細明, 是一種字樣; 研澤中楷, 是一種字樣;
倚天系統中 15x16 的螢幕字型, 也是一種字樣.
- 字型 (typefont)
- 字樣的同義詞. 其實一般情況下我們都說字型. 只因為字型和字形是同音詞,
為了避免在口頭討論的時候產生混淆, 才發明字樣這個名詞.
- 字集 (character set)
- 某些字或字形的集合. 當我們要為某些字定義交換碼或內碼的時候,
必須先決定這一套號碼所預計要對應的字或字形. 一旦決定了,
當然就不能隨意改變. 在形而上的觀念, 我們當然希望能定義一套字的集合.
而針對這一套抽象意義的字來編碼.
比如說言這個字, 理想上應有一定的編碼.
但是, 比方說, 當我們將這個字表現在臺灣的電腦螢幕上的時候,
和這個字表現在大陸的電腦螢幕上的時候, 應該表現不同的字形
(前者是言字的繁體字形, 後者是言字的簡體字形).
但是這個理想有其實現的技術上困難.
據知 CCCII 碼是按照這個理想去設計的;
也就是說, CCCII 碼所對應的字集, 是個字的集合.
其他我們常用的碼, 例如 Big-5, CNS, 電信碼, 都是依字形設計的;
也就是說, 這些碼所對應的字集, 是個字形的集合.
那麼, 所謂字集到底是指字的集合還是字形的集合呢?
我想還沒有明確的界定. 讓我們暫時保持其模糊性吧, 等以後再走著瞧.
目前, 則兩者都可能, 由前後文決定.
- 字碼 (character code)
- 定義了一個字集之後, 為其每個元素對應一個唯一的電腦編碼.
其實這又分交換碼 和內碼 兩個觀念.
- 交換碼 (interchange code)
- 兩台電子裝置, 比如說電腦, 之間交換資訊所用的共同協定編碼.
以期一篇文字從一台裝置送到另一台裝置後, 其文字內容沒有改變.
- 內碼 (internal code)
- 一台電子裝置, 比如說電腦, 儲存或處理文字資料時所用的編碼.
只要這台裝置自己能一致性地處理這些編碼就可以了,
不須理會其編碼的方式是否與其他裝置一樣.
為了方便, 許多電腦其實選擇某種公訂的交換碼為其內碼.
不論兩台裝置處理文字時的內碼是什麼, 只要它們使用一樣的交換碼,
就可以交換這兩種內碼所對應的字集中共同的字.
- 美國標準資訊交換碼 ASCII (American Standard Code for Information Interchange)
- 顧名思義, 不須我多嘴. 其實它只不過是美國的一個國家標準而已,
和法國的國家標準, 我國的國家標準, 應該是屬於平等地位的.
其實不然. 科技的發展, 使得美國國家標準碼立足於其他國家標準碼之上.
這是因為絕大部分的電腦硬體和軟體都生在美國, 而它們都以 ASCII 為交換碼,
所以 ASCII 很自然就成了電腦之間的共同母語.
而後來加入行列的中國人, 日本人, 韓國人, 阿拉伯人的電腦,
都和 ASCII 保持相容性; 意思是說, 它們都至少可以用 ASCII 碼交換資料.
但是 ASCII 只是個交換碼, 未必所有美國生產的機器都以它為內碼.
比如說早期 IBM 的主機, 就是以 EBCDIC (Extended Binary-Coded-Decimal
Interchange Code) 為內碼. 但是因為 EBCDIC 的字集包含了所有 ASCII
字集內的元素, 所以還是可以對外界以 ASCII 為交換碼.
ASCII 所定義的集合有 128 個元素. 但是, 其實只有 94 個字.
亦即一般美式打字機可以在白紙上敲出黑字的那些字,
包括大小寫英文字母, 數目字, 標點符號等等.
其他的 34 個元素對應了基本的文件控制符號.
它們掌控了文字在終端機螢幕上顯現的方式, 或者在列表機上顯現的方式.
包括空白間隔鍵 (SPACE), 定點間隔鍵 (TAB),
返回鍵 (BACKSPACE), 換行鍵 (NEWLINE) 和刪除鍵 (DELETE) 等等.
- 位元 (bit)
- 一個電子裝置, 比如說電腦, 的最基本記憶元素.
以今天的電子計算機而言, 一個最小記憶元素只有兩個可能的狀態:
通路或斷路, 有磁性或沒磁性, 有電或沒電, 之類的.
我們可以應用數學上二進位的模型來表達, 一個 bit 只能有兩種可能的數值:
0 或 1.
但是仍然有某些電子裝置, 其最基本記憶元素可能有多於兩種狀態的.
- 字元 (byte)
- 這是個很不幸的翻譯. 因為美國人的一個字母可以用八個位元來編碼,
所以他們就稱八個位元為一個字元.
但是我們中國人應該要稱 (至少) 十六個位元為一個字元才對.
可是科技的發展不是由我們主導的, 所以只好延續早期的翻譯了.
將一個字元的八個位元以數學二進位數字寫出來, 是八個 0 或 1.
將其轉換成習慣看到的十進位數字, 最小的是 00000000, 也就是 0;
最大的是 11111111, 也就是 255. 所以一共是 0 -- 255 二百五十六個號碼.
因此它可以用來為一個最多含有 256 個元素的字集作編碼.
ASCII 就是用一個字元編碼的. 其實 ASCII 只有一半的元素量, 128 個.
所以它的號碼其實都在 0 -- 127 之間.
早期設計了奇偶校驗 (parity checking) 的容錯裝置在 ASCII 碼裡面.
現在已經不普遍了.
東亞語文系統的字數都遠超過 256 這個數.
所以, 我們必須至少使用兩個字元才能為我們的字集編碼.
- 低字元
- 寫成十進制時, 數目在 0 -- 127 之間的字元.
寫成二進制時, 第一個位元必是 0.
ASCII 只使用了低字元.
- 高字元
- 寫成十進制時, 數目在 128 -- 255 之間的字元.
寫成二進制時, 第一個位元必是 1.
- 首碼
- 以超過一個字元作為字集的編碼系統者, 第一個碼稱為首碼.
如果我們企圖以這套碼作為交換碼, 則首碼有一個特殊的任務.
那就是, 為了與 ASCII 相容, 我們必須設計新的碼可以和 ASCII 區隔.
以日本為首的設計, 就是使用兩個字元來編碼, 而令其首碼是高字元.
一旦高字元出現, 就表示有異於 ASCII 的字碼要來了.
- 次碼
- 如果只用兩個字元來編碼, 則第二個字元就叫次碼.
- 跳脫碼
- 兩個字元雖然可以編出很多個號碼: 65536 個.
但是如果為了與 ASCII 相容, 首碼必是高字元, 則只能編出 32768 個號碼.
這個數字可能不夠將所有的中國字形做個編碼.
再者, 如果中國, 日本, 阿拉伯, 所有國家都企圖用兩個字元來為其文字編碼,
則兩個字元就更不夠了.
所以, 另一個編碼的想法, 也是源於日本, 就是用一個或一串特殊字元,
表示其後的所有字元都對應到某個特殊字集.
比如說日本工業標準字集 (JIS), 臺灣國家標準字集 (CNS), 等等.
這一個或一串特殊字元, 就叫跳脫碼.
這一種做法已經註冊為國際標準, 以後可能會是主流.
- 讀音 (pronunciation)
- 一個中國字的發音. 如果不特別指明, 以臺灣所謂的國語,
或是中國大陸所謂的普通話為準.
- 主要讀音
- 若一個中國字有許多種不同的讀音, 在統計上最常使用的讀音,
稱作主要讀音.
- 破音
- 除了主要讀音以外的其他讀音.
- 音標 (phonetic symbols)
- 標示讀音的符號.
- 注音 (zhuyin)
- 通行於臺灣的ㄅㄆㄇㄈ符號, 共三十七個發聲符號和五個音調符號.
- 拼音 (pinyin)
- 通行於中國大陸的羅馬, 原本應是二十五個英文字母 (沒用到 v)
加上兩個西歐字母 (對應ㄝ和ㄩ). 後來為了與 ASCII 相容,
也可以只用二十六個英文字母. 音調符號加注於字母上頭.