絵文字肌色修飾子 — Unicodeのフィッツパトリックスケール

Unicode絵文字の肌色修飾子(U+1F3FB〜U+1F3FF)の仕組みを学びます。コードポイント、基本絵文字との組み合わせ方、エンコーディングの考慮事項を解説します。

Emoji

詳細な説明

絵文字肌色修飾子

Unicodeはフィッツパトリックスケールに基づく5つの肌色修飾子をサポートしており、人型絵文字を異なる肌色でレンダリングできます。これらの修飾子はコードポイントU+1F3FB〜U+1F3FFです。

5つの修飾子

コードポイント 名前 フィッツパトリックタイプ
U+1F3FB EMOJI MODIFIER FITZPATRICK TYPE-1-2 明るい肌色
U+1F3FC EMOJI MODIFIER FITZPATRICK TYPE-3 やや明るい肌色
U+1F3FD EMOJI MODIFIER FITZPATRICK TYPE-4 中間の肌色
U+1F3FE EMOJI MODIFIER FITZPATRICK TYPE-5 やや濃い肌色
U+1F3FF EMOJI MODIFIER FITZPATRICK TYPE-6 濃い肌色

修飾子の仕組み

肌色修飾子は基本的な人型絵文字の直後に続き、その外観を変更します:

基本絵文字 + 肌色修飾子 = 修飾された絵文字
U+1F44D + U+1F3FD = 👍(中間の肌色)

エンコーディングの詳細

各修飾子は補助面の文字で、UTF-8で4バイト、UTF-16でサロゲートペアが必要です。基本絵文字と組み合わせると:

  • 修飾なしの👍:UTF-8で4バイト(1コードポイント)
  • 修飾ありの👍:UTF-8で8バイト(2コードポイント)

JavaScriptの文字列長

肌色修飾された絵文字のJavaScriptでの.lengthは4(2つのサロゲートペア)になり、単一の文字として表示されるにもかかわらずです。書記素クラスター対応APIなしでは正確な文字カウントが困難です。

書記素クラスターカウント

修飾された絵文字を単一の視覚単位としてカウントするには、書記素クラスターのセグメンテーション(JavaScriptのIntl.Segmenterまたは同等のもの)が必要です。Unicode Inspectorの文字ごとの表示は、この違いを理解するのに役立ちます。

ユースケース

インクルーシブな絵文字ピッカーの構築、書記素クラスター対応テキスト切り詰めの実装、ソーシャルメディアの投稿長制限のための正確な文字カウントの計算、プラットフォーム間での肌色修飾絵文字のレンダリング問題のデバッグに使用します。

試してみる — Unicode Inspector

フルツールを開く