← 返回字元博物館
Unicode 實驗室

一個 Emoji 裡藏著多少個字元?

螢幕上的一個 Emoji,底層可能是單一碼位、顯示序列或一串連接字元。拆開愛心、膚色、職業與旗幟看看。

字元顯微鏡

修改下方樣本,看看螢幕內容實際由哪些碼位組成。

科學家由人物、膚色修飾符、零寬連接符與顯微鏡組成;紅色愛心還帶有看不見的 Emoji 顯示選擇符。

7 個碼位3 個可見單位
  1. U+1F469
  2. U+1F3FD
  3. U+200D
  4. U+1F52C
  5. U+0020
  6. U+2764
  7. U+FE0F

在 Emoji 後按一次退格鍵,它通常會整個消失,因此很自然地被視為一個字元。但在底層,同一張圖可能由一個、兩個甚至更多碼位組成。

Unicode 有幾個容易混淆的層次:

  • 碼位是 U+1F52C 這樣的編號位置;
  • 編碼字元是分配給該位置的抽象物件;
  • 字素叢集是使用者通常視為一個文字單位的序列;
  • 字形是字型或 Emoji 圖庫最後畫出的樣子。

它們常常一一對應,到了 Emoji 卻明顯分開。

一顆愛心可以是文字,也可以是 Emoji

是 U+2665 BLACK HEART SUIT, 是 U+2764 HEAVY BLACK HEART。這些歷史符號在現代彩色 Emoji 出現前就已存在。

Unicode 使用看不見的變體選擇符請求顯示方式:

  • U+FE0E(Variation Selector-15)要求文字樣式;
  • U+FE0F(Variation Selector-16)要求 Emoji 樣式。

所以 ❤︎ 是 U+2764 加 U+FE0E,而 ❤️ 是 U+2764 加 U+FE0F。選擇符不是第二張圖片,而是告訴排版系統如何呈現前一個字元。

如果 App 忽略選擇符或缺少 Emoji 支援,彩色愛心可能退回黑白符號。這是顯示差異,不代表文字一定損壞。

膚色是一個修飾符

Emoji 膚色以 Fitzpatrick 分型為基礎,編碼成修飾字元。可接受修飾的人物或身體部位 Emoji 後方,可以接上一個膚色修飾符。

例如 👋🏽 包含:

  1. U+1F44B WAVING HAND SIGN;
  2. U+1F3FD EMOJI MODIFIER FITZPATRICK TYPE-4。

系統辨識後會畫成一隻手;不支援時,也可能把基本手勢與膚色色塊分開顯示。

看不見的黏著劑叫 ZWJ

U+200D ZERO WIDTH JOINER 是隱形格式字元。在 Emoji ZWJ 序列裡,它要求排版系統把相鄰 Emoji 組成支援的圖形。

👩‍🔬 包含:

  1. 👩 WOMAN;
  2. U+200D ZERO WIDTH JOINER;
  3. 🔬 MICROSCOPE。

支援序列的系統會畫出女科學家;不支援時可能顯示一位女性和一個顯微鏡。邏輯文字仍然存在,合成字形則取決於字型與平台。

家庭與關係 Emoji 可能連接多個人物、愛心、親吻、性別符號與膚色修飾符。一枚緊湊圖示,底層可能像一小句碼位組成的句子。

旗幟又用了另一種方法

多數國家或地區旗幟由兩個區域指示符組成。例如日本國旗使用對應 JP 的兩個指示符。

碼位並未編碼日本國旗圖片,而是編碼地區序列;支援 Emoji 的系統可以把它畫成旗幟,不支援時常會顯示兩個框中字母。

部分地區旗幟使用黑旗、隱形標籤字元與結束標籤。按鍵 Emoji 則結合數字或符號、可選顯示選擇符及 U+20E3 COMBINING ENCLOSING KEYCAP。Emoji 是一組編碼配方,不是小圖片資料夾。

「長度」取決於你數的是什麼

程式可以問:

  • 儲存了多少 UTF-16 碼元?
  • 包含多少 Unicode 碼位?
  • 游標應移過多少字素叢集?
  • 排版系統畫了多少字形?

答案可能完全不同。按任意碼元切割會拆壞代理對;按碼位切割也可能把膚色或變體選擇符與基本字元分開。好的文字軟體會依 Unicode 字素叢集規則處理游標、選取、刪除與長度限制。

因此「使用者名稱最多 20 個字元」還需要定義計數方式。

為何各平台仍畫得不一樣?

Unicode 標準化的是身分與序列行為,不是唯一插畫。Apple、Google、Microsoft、Samsung 等廠商繪製自己的字形,就像不同字型會畫出不同版本的 A

同一序列代表同一編碼概念,但姿勢、顏色、細節與情緒仍可能不同。

螢幕上的「一枚 Emoji」最好理解為一個字素叢集,不一定是一個碼位。

Emoji 表情組合複製家庭、職業、旗幟或愛心到上方顯微鏡,就能看見其中的隱形部分。

資料來源與延伸閱讀

  1. 技術規範
    Unicode Technical Standard #51: Unicode Emoji

    The Unicode Consortium 2025

  2. 技術規範
  3. 技術規範

留言回饋

正在載入留言……