過去在早期的 Dos、Windows 時代,台灣電腦界為了讓中文電腦能夠用中文溝通,業界參照教育部的常用、次常用字表,自行定義了業內通行的 13060 字中文內碼,通稱為「Big-5 碼」。然而教育部的字表考慮的是一般語文傳播,卻漏掉了許多人名、科學術語使用的罕用字,帶著那些字的專有名詞一旦走紅,罕用字立刻會變成常見字。
例如王建「煊」、游錫「堃」、青「邨」、大「麯」、消化「酶」等字。多年前我做百科的時代,第一次聽到電腦裡面沒有「酶」這個字的時候,我的驚訝至今記憶猶新。「酶」在科學類書裡實在太常見了,而每次出現我們都沒有別的辦法,只能個別造字。
大五碼的缺點雖然明顯,但不幸的是使用大五碼的中文系統(國喬、倚天)卻很成功,甚至微軟推出視窗中文版時,也不得不跟進採用大五碼。結果是所有興高采烈使用電腦的文字工作者長期被制約,認定有許多罕用字是電腦打不出來的。而不知道電腦環境在這幾年已經有重大改變。
這幾年新推出的作業系統、文書處理程式、輸入法、瀏覽器和中文網站,百分之九十九都直接支援萬國碼,尤其是 UTF-8 編碼格式,在英文以外的網頁上,UTF-8 編碼幾乎有一統江湖的味道了,但了解這個大變化的文字工作者,包括作者、譯者、編輯、排版美編,卻非常稀少。
至少有五成的人仍然使用舊系統,或者舊文書處理程式,而其他已經使用新系統或程式的人,也極少人知道他們已經可以打出幾乎所有罕用字了。作譯者不知情,編輯不知情,美編也不知情,所以到現在你還是可以在網上看見「方方土」「火宣」「酉每」「吉吉」等拆字法的拼字。
現在出版的新書如果還需要造字的話,幾乎可以肯定其中有九成都是不必要的,因為你已經可以直接打出那些字,不需要重新造字。除了 Word 2007以前的版本還不支援萬國碼以外,你在這兩、三年購買的電腦,從作業系統、字型、輸入法到瀏覽器,絕大部分都已經支援 UTF-8 編碼了。
這就是現代文字工作者必須知道的 UTF-8,你不用知道太多,只要知道 UTF-8 已經解決了很多罕用字問題,就行了。
身為一個文字工作者,你得像古代的文人一樣,知道一點寫作技術和好用的工具。古人要知道的是什麼筆好寫,什麼紙好用,什麼硯台容易發墨,而現代作者最好也應該知道一點 UTF-8(和 CSS,和 html)。
最後介紹一下中推會的全字庫。那裡有很棒的注音、筆畫、部首查字介面,如果你有任何罕用字一時打不出來的話,全字庫的複合查詢還挺好用的,把那個字找出來,你的配合美編就省下了造字的工夫,而你的電子檔也免除了未來轉檔轉出亂碼、怪字的困擾。
附註:如果你想知道更多 UTF-8 的技術細節,可以參考:
- 每個軟體開發者都絕對一定要會的Unicode及字元集必備知識(沒有藉口!) by 周思博(Joel Spolsky)


首先,老貓!恭喜你新年好!
其次,你這篇文章寫得好,深入淺出,不賣弄專業術語,讓大家都快速看得懂,這就是功力!
想當年資策會推動大五碼的時候,沒有人會想到資訊科技進步得這麼快,也沒人會想到會有網際網路,數位典藏計畫開始的時候,大概也沒想到CC授權的觀念風行天下吧!
這些政府主導的科專計畫,我們不能說它沒有貢獻,但往往成為產業後續發展的絆腳石,但是政府還是持續這樣做下去,唉!
雖然不需要造字,但仍缺正點(而且完整)的字型,以及輸入法 (唉)
老貓先生,從Dennis先生處看到超連結轉載,連到這裡
果然好文,夠簡單
也看到Goldred的稱讚,她是我的貴人及老師
特感親切
祝 新年快樂
永錫 敬上
手邊找不到確切的資料,不過 Office 系列大約是 Word 2000 左右就支援 Unicode 了 -- 至少沒有到 2007 這麼晚。
另外,雖然 Windows (NT/2000/XP/Vista/7) 和 Mac OS X 所使用的內碼都是 UTF-16,但 Windows 是 UTF-16 Little-Endian;而 Mac OS X 則是 UTF-16 Big-Endian,因此兩者的文件不是完全相同,而且都不是 UTF-8.... 雖然是可以透過轉換程式轉換啦!
看此文,有兩大驚詫。一、顯然經過了那麼多年,出版界、文化界以及作者、譯者對相關的知識還很少。二、老貓先生此文以「UTF-8」為主題更令人驚訝。
因為這是萬國碼的事情,UTF-8只是另一個編碼系統。「正確的」說法應該是Unicode的歷代版本演進,譬如現在多採用5.0而此版本支援中文用字已經連「甲骨文」以及「八卦符號、麻將符號」都具備了。希望老貓先生秉著求知之心,修補一下此文。因為很多人正受你的知識影響。
跟金紅老師拜晚年。現在產業的腳步常常超過政府了。政府單位很多觀念和工作方法看來都應該調整。
@gugod 是啊,字型和輸入法,這真是整個環節裡最弱的了。
@closer ,感謝提醒。不過我們常常就是首上有好東西,卻不知道可以用哩。另外雖然 UTF-8、16有差,但感覺剪貼簿程式在剪貼轉換的效率還是不錯的。至少從 Word 貼到 html,幾乎都沒有問題。
@匿名,正確來說,UTF-8 是萬國碼的一種編碼格式,只不過現在廣為流行,幾乎等於萬國碼的同義詞了,至少以我在網頁所見的情況來說。
所以萬國碼的新版本,應該是程式人員要傷腦筋的事,我光是想讓文字工作者了解本文要說的事情就已經很困難了,何況你說的那些連輸入法都還不支援的東西?
我是匿名:
輸入法不支援,有很多字確實還是。但如果使用者去全字庫查到編碼,就可在word中用「Alt+x」把編碼轉成文字。甲骨文、麻將符號只是舉例。
UTF-8、UTF-16只是網頁傳輸時的編碼格式,不等同於Unicode,所以你看網頁時自然都是看到這個,因為它本就是網頁用的傳輸格式而非原本的編碼格式。但你在電腦中譬如純文字檔(打開小作家看看能存成什麼檔)有幾種格式可供選擇,其中有大小尾序的Unicode也有Big5用的ANSI還有UTF-8,但以一般文書軟體而言,是不用這種儲存格式的。一般是用Unicode。Unicode是世界各國學者專家一起搞出來的東西,詳細的可以去看維基百科。就這樣。
補充一點:
字型不夠,因為造價高昂。即如去年蘋果日報報導微軟有錯字「秣」,至今便仍未更正。而這不過就是一個字而已。微軟號稱vista所用中文字一個字造價高達一百美元,便不難理解何以字型少。此外,為極罕用字弄輸入法,也無利可圖,如果輸入法譬如倉頡考量到這些字,重碼率也要攀高很多。所以少人作。
網路上有不少免費的中文字型,但鮮有支援到Unicode 5.0標準的,因為收費的都少人幹了,何況免費的。
此外,出版社應該有自己的造字檔,用造字的方法來處理缺字,成為出版社的內部資源,(同時美術外包時也應該有相關字型)而非以拼字的方式處理。
僅是一些淺見。
不好意思。再補充最後一點:
注意到UTF-8、UTF-16都沒有版本編號嗎?而Unicode有版本編號。因為前者乃一固定之傳輸方法,不需版本編號,因為完全無更新之可能。而Unicode編碼範圍經過不斷擴充,至今已5.0。這就是我之所以要在此提出用UTF-8來談,不太正確的原因。但前幾則一直忘了說,哈。
我整理了一下編輯應該注意的有關編碼的事情,貼於下,僅供參考:
我想現在的編輯要避免「轉檔」時所產生的文字訛誤問題(拼字問題僅是其中之一,本文僅就此提出一些說法。),首先編輯只要知道幾件事情就好,其他的,因為他們不是搞技術的,根本不需要知道,也沒那麼容易明白。
一、以前電腦文書處理軟體,其繁體中文採用區域碼Big-5編碼,現在採用萬國碼Unicode,最新版本編號為5.2,但vista面市時支援的是5.0的版本。此外,中華民國政府也自己搞了一套中文編碼,謂之「全字庫」,其中多數編碼都與Unicode 5.0接軌。而所收字數多於Unicode。其原因在於中華民國政府未立法限制造字,以至於許多「好奇」之人,取名字時喜自創新字,造成國家不必要之資源浪費。如中華電信、戶政單位。總之,第一件編輯要明白的事情很簡單,那就是他們現在已經有非常多的中文可用,多數都在支援Unicode 5.0的作業系統,如Vista中具備了相關的字型,同時最新版的昇陽、微軟Word也可以處理這些編碼。至於美編常用的蘋果電腦支援到Unicode幾版,因我手頭上沒有這套系統,請自行測試。同時,Unicode 已經收有很多符號,包括注音符號、部首、撲克牌、麻將、八卦,還有各國文字與古文,如甲骨文、越南喃字,這些字或符號都可在Unicode的相關平面中找到,其他的請自行參考Unicode網站或維基百科說明,便建立相關的知識庫,以免為不必要的字與符號作拼字或畫圖的工作。(幾年前的維基百科相關平面使用非常方便,現在很不方便。)或利用微軟作業系統「系統工具->字元對應表」對某編碼頁進行查看。
Big-5 收字:13,502 字。
Big-5有兩個重複字,編碼不同但字型相同,因此使用「取代」功能將無法完全取代。
Big-5空間分配 內碼範圍 字數 說明
A140 - A3BF 408 特殊符號
A3C0 - A3FE 63 未用字區
A440 - C67E 5,401 常用字
C6A1 - C8FE 408 使用者造字區(4)
C940 - F9D5 7,652 次常用字
F9D6 - F9FE 41 擴充字
FA40 - FEFE 785 使用者造字區(1)
8E40 - A0FE 2,983 使用者造字區(2)
8140 - 8DFE 2,041 使用者造字區(3)
預設字集 = 13,502 =常用字+次常用字+特殊符號+擴充字
使用者造字區 = 6,217 = (1)+(2)+(3)+(4)
未用字區 = 63
可定義總字數 19,782
Unicode 3.1 收字(UCS-2):21,204 字。
Unicode 3.1 中文字及中文造字區:
4E00 - 9FA5 中文字(51A6字,共20902字)
F900 - FA2D 中文字(12E字,共302字)
E000 - F8FF 中文造字區(1900字,共6400字)
(UCS-2,2表示由兩個位元組所構成的編碼,如「原」字編碼為:53 9F。由53與9F組成,16進制表示法。目前實際應用的Unicode版本對應於UCS-2,使用16位的編碼空間。也就是每個字元佔用2個位元組。這樣理論上一共最多可以表示216即65536個字元。基本滿足各種語言的使用。實際上目前版本的Unicode尚未填充滿這16位編碼,保留了大量空間作為特殊使用或將來擴展。)
Unicode 5.2 收字(UCS-4):74,394字。
(UCS-4。4表示由四個位元組所構成的編碼。最新(但未實際廣泛使用)的Unicode版本定義了16個輔助平面,兩者合起來至少需要佔據21位的編碼空間,比3位元組略少。但事實上輔助平面字元仍然佔用4位元組編碼空間,與UCS-4保持一致。未來版本會擴充到ISO 10646-1實現級別3,即涵蓋UCS-4的所有字元。UCS-4是一個更大的尚未填充完全的31位字符集,加上恆為0的首位,共需佔據32位,即4位元組。理論上最多能表示231個字元,完全可以涵蓋一切語言所用的符號。)
Unicode截至目前為止歷次的版次與發佈時間如下:(取自維基百科)
Unicode 1.0:1991年10月
Unicode 1.0.1:1992年6月
Unicode 1.1:1993年6月
Unicode 2.0:1997年7月
Unicode 2.1:1998年5月
Unicode 2.1.2:1998年5月
Unicode 3.0:1999年9月;涵蓋了來自ISO 10646-1的十六位元通用字元集(UCS)基本多文種平面(Basic Multilingual Plane)
Unicode 3.1:2001年3月;新增從ISO 10646-2定義的輔助平面(Supplementary Planes)
Unicode 3.2:2002年3月
Unicode 4.0:2003年4月
Unicode 4.0.1:2004年3月
Unicode 4.1:2005年3月
Unicode 5.0:2006年7月
Unicode 5.1:2008年4月
Unicode 5.2:2009年10月
CNS全字庫收字:
Unicode 5.0包涵以前各版本文字,Unicode 包涵區域碼(如Big5或GB)。
二、遇到罕用字,作者或編輯用所用的輸入法打不出來時,請上全字庫查詢是否Unicode有收入此字。若有收入可複製其編碼,使用word「Alt+x」功能將相關編碼轉換成文字,日後搜索取代也很方便。同時,選擇所下載的免費字型,通常免費字型所支援的Unicode版本數不高,大概都在Unicode 3.1左右,因此你多數只能使用微軟本身提供的字型。以下僅列出Vista中的內建字型:
mingliu=細明體&新細明體&細明體_HKSCS(TrueType)
mingliub=細明體-ExtB & 新細明體-ExtB & 細明體_HKSCS(TrueType)-ExtB(TrueType)
simhei=黑體(簡)
msjh=微軟正黑體
msjhbd=微軟正黑體Bold
msyh=微軟雅黑(簡)
msyhbd=微軟雅黑Bold(簡)
simkai=楷體(簡)
kaiu=標楷體
simfang=仿宋(OpenType)
simsun=宋體&新宋體(TrueType)(簡)
如何確定是Unicode 3.1所收字或Unicode 5.1所收字,請用「Alt+x」反轉文字成編碼,檢查編碼範圍即可得知。編碼範圍在FFFF(16進制)以上的就是Unicode 5.1的字,通常你就不需要再為字型苦惱了,因為這通常表示你只有微軟的內建字型可以選擇。同時,(維基百科:)微軟拼音在輸入法啟動狀態下,單擊語言欄上的「功能菜單」按鈕,指向「輔助輸入法」即可發現「Unicode碼輸入方式」,利用它可以直接輸入Unicode相應十六進制值的方式輸入相應文字。例如中文「胥」輸入「5066」,朝鮮語文字「셅」輸入「c145」(不需要在前面加0x或x)。(維基百科)
三、大陸作者作品或者大陸譯者作品,牽涉到簡體轉繁體的問題。其中與編碼有關(與編碼無關而與詞彙有關的請自行撰寫)的為大陸採用GB區域碼與我們採用Big5區域碼不同。由於GB碼的收字字數較Big5多,因此他用的字會超出Big5的編碼範圍,因此請勿用陽春型的石器時代文書編輯軟體處理他(如小作家),否則將造成文字流失而變成半形「?」,因為這些字已經在對應中被轉成Unicode碼了,所以你用ANSI格式儲存時,就會把區域碼編碼以外字給弄掉了(通常超出某區域碼的字在存檔時就會統一被取代為「?」)。同時,由於微軟作業系統提供大陸與台灣使用的部份字型有編碼上的差異,因此當他使用宋體標設某些文字時,可能在轉換成繁體時某些字型設定無法被成功保留。
至於什麼UTF-8、UTF-16,這些加速網路傳輸與校驗的編碼方式,與編輯作業無關,不需理會。若有疏漏請自行補充。E
疏漏的補充:
全字庫收入102631字,其實Unicode 5.0以上版本收的七萬多字已經很夠用了。
如果你使用xp作業系統,記得下載vista字型,否則雖然他可以辨識編碼,會將他當成一個「字符」來處理,但無法顯示字型,因為根本沒有!
匿名兄,想來您也非無名之輩,何必始終不給個稱號呢?
另外看了您的補充,我個人是很佩服的,但我也忍不住想起一樓的金紅老師給我的評語:「不賣弄專業術語」。恕罪恕罪。:)
老貓兄:
我不喜歡「出」名,這只是舉手之勞,可惜沒時間寫詳細一點,希望對你們業內有所幫助。我看過很多編輯每天忙到很晚,在我看來,如果他們懂得一些方法、工具,是可以輕鬆許多的。如果不想稱我匿名的話,可以稱我「秦高」。
GOOGLE 資料的時候找到這個頁面 或許以下這篇文章連結對於 這個頁面的 討論有些幫助~
Mac OS X (10.3&10.4)安裝,設定,使用經驗談
http://www.pczone.com.tw/vbb3/thread/41/124690/15/
UNICODE 5.2 字形蒐集