絵文字肌色修飾子 — 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の文字ごとの表示は、この違いを理解するのに役立ちます。
ユースケース
インクルーシブな絵文字ピッカーの構築、書記素クラスター対応テキスト切り詰めの実装、ソーシャルメディアの投稿長制限のための正確な文字カウントの計算、プラットフォーム間での肌色修飾絵文字のレンダリング問題のデバッグに使用します。