问题

为什么有的字形可以「打出字」,有的不可以?

回答
一个字形是否能“打出来”,这背后其实涉及到了汉字输入系统的工作原理。简单来说,能“打出来”的字,是因为它在输入法的字库里有对应的编码,而不能“打出来”的字,则是因为它没有被收录或者编码方式不兼容。

咱们把这个过程拆解开,就好比你要找一本特定的书,得先知道书名、作者,然后在书架上找到对应的位置。

汉字输入系统的“幕后英雄”:编码

当你打开电脑或者手机,准备打字时,你看到的其实是输入法的界面。你敲击键盘,输入的并不是汉字本身,而是通过键盘组合出这个汉字在输入法系统里独一无二的“身份标识”——编码。

输入法就像一个翻译官,它接收你输入的按键信号,然后根据自己预设的规则(编码方案),去查找数据库,找到与这些信号对应的那个汉字,最后把它显示在屏幕上。

常见的输入法编码方案有很多,比如:

拼音输入法: 这是最普遍的一种,你输入字的读音,比如“中”字,你会输入“zhong”。输入法会根据“zhong”这个拼音,调出所有读这个音的字(比如“中”、“钟”、“忠”等),然后让你通过数字或者翻页来选择。
五笔输入法: 这是基于字形的输入法,它将汉字拆分成不同的笔画或偏旁部首,并给每个部分分配一个字母键。打字的时候,你按照拆分规则输入对应的字母,输入法就能识别出这个字。比如“中”字,在五笔里可能是“U”+“N”+“N”+“T”等等(具体编码会因版本略有不同)。
笔画输入法: 直接输入汉字的基本笔画,比如横、竖、撇、捺、折等,输入法根据你输入的笔画顺序和组合来匹配汉字。
手写输入法: 直接在屏幕上写出汉字,输入法通过识别你的笔迹来判断是哪个字。

为什么有的字“打不出来”?

现在回到你的问题,为什么有些字形“打不出来”?原因主要有以下几点:

1. 未被收录(最常见的原因):
生僻字: 汉字的数量非常庞大,而且还在不断演变。很多非常生僻的字,比如一些古籍里才会出现的字,或者一些非常少见的姓氏,可能并没有被主流的输入法字库所收录。输入法就像一本字典,如果你的字不在字典里,自然就查不到。
异体字: 有些字存在多种写法(异体字),虽然意思相同,但在标准字库里可能只收录了其中一种。当你尝试输入的是另一种不常用的异体字时,输入法就可能找不到。
错别字/网络用字: 有些字可能是人们随意创造的、不规范的字,或者是在网络上流行但未被正式录入的用字。这些字因为没有被输入法开发者纳入标准字库,所以无法直接打出。

2. 编码不兼容或冲突:
自定义编码问题: 有些输入法允许用户自定义编码,或者用户自己通过一些工具生成了某些字的编码。如果这些自定义编码不符合输入法系统的规范,或者与其他编码产生了冲突,也可能导致无法打出。
特定输入法的问题: 不同的输入法有不同的字库和编码规则。你在一个输入法里打不出的字,可能在另一个输入法里就能打出来(如果那个输入法收录了)。

3. 字形过于复杂或不规范:
非常规组合: 理论上,所有汉字都可以被拆分成笔画和偏旁部首。但有些字形可能是极其复杂的组合,或者包含了不被识别的特殊符号。输入法在拆解和匹配时,如果遇到它无法理解的“部件”,就很难生成正确的编码。
非标准字形: 有些字形可能是在设计上非常特殊,或者被人为修改过,不再符合汉字的基本结构规律,输入法系统可能无法解析。

“打出来”的背后:输入法的“智慧”

一个能够“打出字”的输入法,需要具备几个关键的能力:

庞大且规范的字库: 输入法需要收录足够多的汉字,包括常用字、次常用字、以及一些生僻字和异体字。而且这些字都需要有明确、唯一的编码。
智能的编码算法: 无论是拼音、五笔还是其他编码方式,都需要有高效的算法来将你的键盘输入转化为对应的汉字。这涉及到词组联想、纠错、用户习惯学习等高级功能,让输入更便捷。
对字形结构的理解(对某些输入法而言): 像五笔输入法,就需要输入法开发者对汉字的结构进行非常精细的拆分和编码。

解决“打不出来”的办法

如果你遇到一个字打不出来,可以尝试以下方法:

1. 更换输入法: 尝试用其他的输入法,比如搜狗、百度、谷歌输入法等,它们各自的字库和收录情况有所不同。
2. 尝试其他编码方式: 如果常用拼音打不出,试试五笔或者笔画输入法,或者手写输入法。
3. 使用“万能五笔”或类似工具: 有些输入法或辅助工具声称可以识别并输入更多的生僻字,可以搜索尝试。
4. 查阅在线字库或词典: 在线词典、汉典等网站通常收录了大量的汉字,你可以从中找到该字的读音、部首、笔画等信息,然后尝试用笔画输入法或者根据读音来打。
5. 复制粘贴: 如果你在其他地方(比如网页、文档)看到了这个字,可以直接复制然后粘贴到你的输入框里。
6. 使用特殊字符输入工具: 操作系统或一些第三方软件会提供插入特殊符号或字符的功能,里面可能包含一些不常用的汉字。

总而言之,一个字能不能“打出来”,很大程度上取决于它有没有在输入法的“字典”里,并且你输入的“查找方式”(编码)是输入法认识的。就像我们去图书馆找书,如果书不在图书馆,或者你报的书名不对,自然就找不到。

网友意见

user avatar

因爲在當今電腦都使用的Unicode(統一碼、萬國碼)裏,處理到「中日韓統一表意文字」的收錄時,應用到兩個對立的原則:表意文字認同原則(Han Unification Rule,又稱表意文字統合原則)與原規格分離原則(Source Separation Rule,又稱字源分離原則)。

認同原則與原規格分離原則

東亞各國字形多有微妙的差異。如「房」字的第一筆,韓國傳統漢字字形、臺灣敎育標準字形作撇;香港敎育參考字形、中國大陸規範作點;日本標準作橫。又如「次」字的左旁,韓國採用傳統字形,首筆爲橫,次筆爲挑,即「二」字作左旁偏旁時的末橫讓右變挑之寫法;臺灣敎育字形作兩橫,即「二」字而且末橫不讓右變挑;大陸、日本、香港等則作「冫」(俗稱兩點水)。這種程度的差異,理想上是整併作一個字爲佳。否則,要是凡異體字都收進不同碼位裏,Unicode收錄的漢字就會過於臃腫,用戶搜尋時也會因異體問題而找不到想要的結果。

然而,從之前各種受挫之文字整併計劃的經驗得知,整合字集與現行通用字集(Big5或國標碼)等無法一一對應,是推行整合字集的最大阻礙。例如,日本的JIS(日本產業規格,Japanese Industrial Standards)編碼裏,同時收錄了「剣」字與「劍」字,原本JIS文件裏這兩個字可以並存。若採用整合字集後,它們會變成同一個字,就會造成使用上的困擾。而且,如果將多個不同地區字形合併,會影響閱讀者,令使用者不習慣並非以往所見字形;更有可能引致閱讀者因習慣而書寫不屬於自己地區的字形(或地區性的異體字)。

於是,表意文字認同原則與原規格分離原則就應運而生。

表意文字認同原則下,Unicode「只對字(Character),而不對字形(Glyph)」編碼,會把同一字的不同字形(即異體字)合併。好像上述的「次」字,在Unicode裏會整併成一個碼。又例如不同地區而有不同寫法的部首,如「⻌(中國大陸規範、日本新字體)、⻍(港臺舊字形、韓國、日本舊字體)、⻎(臺灣敎育字形)」、「礻(首筆是頓點,中國大陸規範、臺灣敎育字形)、⺭(首筆是直點,日本新字體)、⺬(日本舊字體、韓國、港臺舊字形)」、「爫(中國大陸、港臺新字形)、⺥(舊字形)」等,都會合併編碼。這些部首的寫法差異就會交由字型處理。比如說,使用依中國大陸漢字標準《印刷通用漢字字形表》的字體下(如中易宋體、微軟雅黑體)便會出現「⻌、爫」;使用臺灣敎育標準字形(如微軟正黑體或新版細明體,但非舊版細明體[1])就會出現「⻎、爫」等字形。這大大解決了因地區而異之部首寫法。

至於原規格分離原則是指,在上述所列出之各種來源文本裏,若有任何字集同時收了兩種以上的文字字形,則在Unicode中日韓統一表意文字中,也同時收錄這些字。這樣一來,現行的各種原有字集與Unicode漢字可以一一對應。比如「房」字,各地字集都沒有分別編碼,就只編進一個碼位,部首第一筆的寫法交由字型處理。然而,「戶」、「户」、「戸」這三個字,在一些地區標準裏是分別編碼的,Unicode則以三個碼位來分別收錄它們。 上述的「劍」與「剣」也一樣,要分別收錄到不同的碼位。

基於上述運作,Unicode能大幅減少收錄漢字字數,同時讓地區編碼過渡至Unicode時,字集裏的字元不會有流失。但是,原規格分離原則破壞了Unicode「只對字,而不對字形」編碼之原則,使某些漢字獲得兩個或多個編碼,亦遭受不少批評。

後來的一些重複漢字會使用「兼容區」提供暫存編碼,可以通過歸一化(normalization)步驟移除。比如維基百科,在編輯者按下「發佈更改」後,會把編輯區域裏的兼容區字元自動替換成非兼容區字元,換言之編輯者無法使用兼容區字元。一般的漢字輸入法,以及多數漢字字型,也不支援兼容區字元。用戶若要使用放在兼容區裏的字形,可能要花上額外的操作,甚至仍不得要領,無法選用。

另外,原規格分離原則只適用於最初Unified Repertoire and Ordering(URO)的20,902字,換言之,由「擴展區A」開始就不再適用。原因是個別地區提交了不少僅有十分輕微差異的字樣,比如臺灣《異體字字典》裏的各種異體,要求Unicode分別編碼。然而,那些字樣所立足的地區編碼,並非該地區的通用編碼,例如是「中文標準交換碼」(臺灣實際通行的編碼是Big5碼)。若Unicode全面採納,將會令Unicode對異體字的處理更混亂。最終,Unicode決定自「擴展區A」起就不再使用原規格分離原則。

今天,異體字選擇器(Variation Sequence)以及Adobe常用的CID字型等技術,已容許在一個Unicode編碼裏收錄和調用兩個或多個漢字字樣,原規格分離原則在今天已成爲過時技術的副產品。

起源不同原則

留意的是,可以整併的字只限異體字。如果有些漢字,它的音、義根本不一樣,是兩個不相同的字,即使它們外形相近,寫法差異比另一些整併的字少,但仍不能合併。這規則稱爲起源不同原則(Noncognate Rule)。

擧例說:「土」和「士」雖然形似,卻是兩個不同的字,我們不可以整併它們。(然而,日本、韓國、大陸、香港等地的「寺」字,與臺灣敎育字形的「寺」字,兩者頂部分別是「土」和「士」,但它們音義全同,是同一字的異體,於是就能夠整併。)

其他起源不同的例子還有「胄」和「冑」,「柿」和「杮」,「汨」和「汩」,「陝」與「陜」等。 這些字都不可以整併。

學界批評

中文文字學學界對Unicode的原規格分離原則有不少批評,尤其是它令同一個異體部件時而分離,時而合併,在日常使用層面引伸了許多問題。擧例說,「青」和「靑」、「淸」和「清」都在正常區域中作分離編碼,獲得兩個碼位;「晴」、「靖」、「精」雖也獲兩個碼位,但其中一個是在兼容區中,日常難以應用;「請」、「情」、「蜻」、「靜」更只有一個碼位。或例如,「直」、「植」、「埴」、「殖」、「置」的末筆無論是橫還是豎橫(豎折),都被整併作相同的碼位,可是「値」和「值」卻分離作兩個碼位。Unicode的做法,沒有把含有相同異體部件的字全都合併,也沒有把它們全都分離,結果經常導致字形不一致,或者使用者無法選擇他希望使用的字形。

其他漢字使用地區也有類似聲音。例如「戋」和「㦮」兩個偏旁,前者爲「戔」的中國大陸簡化漢字,後者爲「戔」的日本略字,在「残」和「⿰歹㦮」、「浅」和「⿰氵㦮」、「践」和「⿰⻊㦮」等組合裏,Unicode就整併起來。可是碰到「栈」和「桟」,卻不統合,分別安排到U+6808與U+685F兩個碼位中。這種情況遭日本學者指爲Unicode自相矛盾(參見:安岡孝一:《Unicodeの矛盾》)。

在下也寫過一篇《Unicode摧殘正體字》,批評此問題。可以參閱:

事實上,由於在「中日韓統一表意文字」的不同區域裏,Unicode本身也使用了不一致的併分尺度,因此,早期的異體字時常獲分配正常碼位,後來常常只有兼容區的暫存編碼,再後來則不時被直接整併並交由異體字選擇器處理。若不修正或更改早期的編碼,類似的問題將會持續存在。

参考

  1. ^ 舊版細明體指Windows XP或以前版本之新細明體及細明體,其漢字寫法大體上遵從傳承字形。新版細明體指隨「新細明體更新套件」而來的5.03版及其後版本,字形遭改整爲臺灣敎育標準字形,剝奪用戶選擇傳承字形的權利。

类似的话题

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有