背景
最近幾天,有人在朋友圈裡面發了這段文字。
![I love you three thousand times——從這句話說起](http://p2.ttnews.xyz/loading.gif)
情景模擬
這段話的含義先不提,不過乍一看,字體和平常用的字體有區別。我起初以為是朋友圈的新功能——可以自定義字體,但是我並沒有找到這個功能。
我還有論文要寫,於是就沒有探究下去。直到後來有一天,同樣的句子在別的地方出現——還是那熟悉的字體。
我開始覺得這不是特殊的字體,而是一種字符。於是我查了一下,果然如此。
數學字母數字符號
這類字符是Unicode中的數學字母數字符號(Mathematical Alphanumeric Symbols)。對於大小寫拉丁字母,襯線體、無襯線體、手寫體、等寬體、哥特體、雙線體什麼的都有,而且對於襯線體、無襯線體、手寫體、哥特體,還有粗體;對於襯線體、無襯線體,還有斜體和粗斜體:
![I love you three thousand times——從這句話說起](http://p2.ttnews.xyz/loading.gif)
數學字母數字符號的拉丁字母示例
除了拉丁字母,這類字符還有希臘字母和數字,不過支持的字形就少了:
希臘字母示例
數字示例
另外說一下,上面的圖中,紅色背景的字符是在以前的Unicode中就有自己的碼位,所以在這個區段不重新編碼。
這些字符在Unicode 3.1中被支持,最常用的用途就是和其他字符一起呈現數學公式。如:
=²
正常顯示的情況,注意這三個字符應該是襯線斜體形式的
當然,如果單純地使用普通的文本編輯器或閱讀器,並不能很好地呈現公式,有條件的話還是使用公式編輯器或者是諸如LaTeX這樣的語言來書寫公式。
就算有也不一定能用
當然,Unicode支不支持是一方面,字體支不支持是另一方面了。就算字體支持了,軟件支不支持又是另一方面。
在我的電腦上,我通過BabelMap(使用系統自帶的字符映射表看不到這些區域的字符)發現,只有四種字體支持這一區段的字符,甚至連Helvetica、Source Sans Pro、Source Serif Pro、思源黑體這樣的字體都不支持這個區段的字符。不過好在有一個可免費商用的字體(Noto Sans Symbols)有這一區段的字符(我的電腦上安裝的字體非常多)。但是奇怪的是,如果你使用記事本、VS Code的話,就算使用別的字體,還是能夠正常顯示這些字符。應該是有一種回滾機制吧。
只有四種字體支持這一區段的字符
在手機上,我使用基於Android 9的EMUI 9.0.1,使用默認字體(但我不知道有什麼字體——應該是有Noto Sans Symbols吧),是能夠顯示這些字符的。
在我使用過的軟件中,TIM的PC版沒法顯示這樣的字符(不過不知道是軟件的原因還是字體的原因)。QQ的Android版在聊天窗口中可以正常顯示這樣的字符,但是顯示文本文件時,仍然無法顯示這樣的字符。不知道是軟件原因還是字體原因。
TIM的PC版發送=²的結果
Android上HTML查看器與QQ對比
結尾
說起來,實際上Unicode的新字形還挺有意思的。除了大家都知道的emoji外,還有各種各樣的字符,甚至有古埃及文字、楔形文字、麻將牌、撲克牌這樣的符號。它們中有些字符早已消亡,有些字符默默無聞,更多的字符,則在異國他鄉活在了顏文字中。
古埃及文字
.
附:全部字形
以下就給出了該區段全部的字形,供大家複製(如果可以的話)使用,或者是測試一下能不能正常顯示。對於該區段中沒有編碼的碼位,使用其他區段已有字符代替。
ℎ
ℬℰℱℋℐℒℳℛ
ℯℊℴ
ℭℌℑℜℨ
ℂℍℕℙℚℝℤ
Mathematical Alphanumeric Symbols - Wikipedia
閱讀更多 銀蛇蠟象 的文章