http://www.unicode.org/charts/PDF/UFE50.pdf

Unicode 收錄了這些字元是為了與臺灣字符集 CNS 11643 兼容。這些標點等字元原來在 CNS 11643 與常規的西文標點和?CJK?標點同時存在,是為什麼場景準備的?為什麼有?CJK?頓號卻沒有?CJK?空心句號?如今還有哪些場景會用到這些字元?


恭喜題主發現了一樁謎案。


先上結論。

「從何而來?」

從 CNS 11643 而來,還有可能從 JIS X 而來。

「為什麼場景準備的?有那些場景會用到這些字元?在哪些情況下用到?」

沒有證據表明這些符號會被用到或正在被使用。

「為什麼有 small ideographic comma 卻沒有 small ideographic full stop?」

極有可能是因為抄漏了。

「碼錶中間兩個 & 是什麼?」

一個被映射到了「U+00B7 middle dot」,另一個被映射到了數理運算符號區(Mathematical Operators)的「U+2215 division slash」。


由於 CNS 11643 的技術基礎來自 ISO 2022,CNS 11643 中有兩套標點符號。一套是臺灣用的「逗號、頓號、句號、科技文獻句號、間隔號、分號、冒號、問號、嘆號」,另一套是從 ISO 2022 來的日本用的「三點 leader、二點 leader、西文讀點、讀點、西文句點、中黑、semicolon、colon、疑問符、感嘆符」。兩套符號的區別在於臺用標點是上下左右居中的,而日用標點則通常靠下。

因為在上下左右居中的格式下科技文獻句號和間隔號極像,教育部「異體字字典」便把科技文獻句號當間隔號來用。

因此「﹐﹑﹒﹔﹕﹖﹗」應該來自 JIS X 裏的日用標點。

另一方面,由於暫不明確的原因,CNS 11643 引入了兩套位於 ASCII 區的符號,並強行造成了全半形對立。

前文所提的日用標點曾被我以為是全半形對立的一部分,考慮到 ASCII 區並沒有頓號,假設不成立。因此 ASCII 區獨立於 CNS 11643,所收錄的字母和數字均為對立的全形字母及數字,所收類似 C0 控制符的碼點應被映射到控制符顯示符號區(Control Pictures)。

例如 SET 1 中同時存在半形形態的「#(0213)(0214)*(0215)」和全形形態的「#(0176)&(0177)*(0178)」。後者被映射到半形和全形字元區(Halfwidth and Fullwidth Forms),而前者則成了「﹟﹠﹡﹢﹣﹤﹥﹦﹨﹩﹪﹫」。

在碼錶中,以上符號和 CJK 標點均無顯著大小區別。

真正看起來「small」的是六個括弧「﹙﹚﹛﹜﹝﹞」,碼錶上的字形的確比「(){}〔〕」略小一些。通過與 JIS X 進行去重比對,這六個極有可能是「????〖〗」的訛誤。

不同字體下??的字形有差異,以 MS Gothic 為準。

至於剩下的「?」(U+FE58 small em dash),我連第 9 字面長啥樣都不知道,管它呢……

ˉ\_(ツ)_/ˉ

順帶一提,陸標的破折號 U+2014 em dash 在臺標中則為連字號,而臺標的破折號則是兩個 U+2500,也就是兩個製表符。

以上純屬猜測,詳情請諮詢 Selena,問不到別賴我。

[1] Big5 (Traditional Chinese) character code table.

[2] 國家標準 (CNS) 網路服務系統.


Eiso 認為是科技文獻,我覺得十分有道理,看來猜錯了 _(:з」∠)_


補充一下 @Kushim Jiang 的答案。

UCS Char CNS C Big 5 Char ASCII

U+FE50 ﹐ 1-212E A14D , 0x44U+FE51 ﹑ 1-212F A14E U+FE52 ﹒ 1-2130 A14F . 0x46U+FE54 ﹔ 1-2132 A151 . 0x46U+FE55 ﹕ 1-2133 A152 ; 0x59U+FE56 ﹖ 1-2134 A153 ; 0x59U+FE57 ﹗ 1-2135 A154 ! 0x33U+FE58 ? 9-3258

U+FE59 ﹙ 1-215E A17D ( 0x40

U+FE5A ﹚ 1-215F A17E ) 0x41U+FE5B ﹛ 1-2160 A1A1 { 0x123U+FE5C ﹜ 1-2161 A1A2 } 0x125U+FE5D ﹝ 1-2162 A1A3 U+FE5E ﹞ 1-2163 A1A4 U+FE5F ﹟ 1-222D A1CC # 0x35U+FE60 ﹠ 1-222E A1CD 0x38U+FE61 ﹡ 1-222F A1CE * 0x42U+FE62 ﹢ 1-223F A1DE + 0x43

U+FE63 ﹣ 1-2240 A1DF - 0x45

U+FE64 ﹤ 1-2241 A1E0 &< 0x60U+FE65 ﹥ 1-2242 A1E1 &> 0x62U+FE66 ﹦ 1-2243 A1E2 = 0x61U+FE68 ﹨ 1-2262 A242 0x92U+FE69 ﹩ 1-226C A24C $ 0x36U+FE6A ﹪ 1-226D A24D % 0x37U+FE6B ﹫ 1-225E A24E @ 0x64

從上可以看出,這個部分大部分都和ASCII重合,U+FE5D(﹝)和U+FE5E(﹞)其實也可以看成是0x5B([)和0x5D(])不同版本而已。再加上U+FE51是「半形」的頓號,U+FE58是「半形」的半破折號。很明顯,這些標點是提供給科技文獻使用的。

這樣的話,另一個問題又來了。

爲何不直接使用ASCII的字元,而要這樣重新編一些字元?

這就不得不提及早年的一些編碼實現方式了。簡單舉個其他人舉過的例子。

- 7-bit ISO 2022 & $ ( G 0x6947 0x4773 & ( B

- ISO-2022-CN & $ ) G & 0x6947 0x4773 &

在當時要使用ASCII或者在地化的ISO/IEC 646(在中國大陸是GB 1988)是需要通過轉義序列,爲了方便,逃開轉義序列是個還算明智的選擇。CNS11643這個做法和GB 2312(注意我指的是這一份國標而不是其他東西,更不是EUC-CN)中隱藏的第十區有相似之處。Adobe-GB-1繼承了GB 2312的第十區,再加上了第十一區(可以參考河豚書)。

自然到後來,無論是接入Unicode體系的UTF,還是使用EUC-TW來實現CNS11643,這些字元也都成了雞肋。另一個方面,CNS11643還在第8字面的2121到2221重新映射了ASCII中的0x20到0x7E。有地方提到如此做法是爲了避開ASCII常用在代碼書寫的字元,還給這些字元一個簡單的環境。因而以上提到和ASCII有對應的Small Form Variants在CNS11643中(用EUC-TW實現時)實際上有三組字形一樣,但碼位不同的標點。


推薦閱讀:
相關文章