絵文字
emoji
仕様はあるが完全実装は誰も成功していない模様。サブセットとしての実装があるのが現状。
日本では携帯電話のメールやショートメールで使えるようにキャリアごとに独自に外字として絵文字を作成。
互換性がないためキャリア間で文字化けが発生していた。
音符がウンコに文字化けしていた。
Google が Unicode コンソーシアムに申請して
Unicode 経由で統一した変換ができるようになった。Unicode 6.0 から。Emoji 1.0。
合成できるようにしたために混沌としてきている。
表示システムが対応していなければ表示は変わらない。
国旗
U+1F1E6(A)~U+1F1FF(Z) の2文字で2文字
国名コードと見なしてその国旗を示す。
U+1F3F4(Waving Black Flag)の後に、U+E0020~U+E0007E によるタグ文字列(ASCIIと同じ配列)で地域別の旗を表す。ISO 3166-2 を使う。ハイフンは含まない。終端は常に U+E0007F (CANCEL TAG)
シーケンスは用意するが表示手段は実装依存、という話なので、実際のところ、まず使えないのでは?
Twitter では Wales の旗が表示されるのを確認した。
Wales の旗のシーケンス
U+1F3F4 WAVING BLACK FLAG
U+E0067 TAG LATIN SMALL LETTER G
U+E0062 TAG LATIN SMALL LETTER B
U+E0077 TAG LATIN SMALL LETTER W
U+E006C TAG LATIN SMALL LETTER L
U+E0073 TAG LATIN SMALL LETTER S
U+E007F CANCEL TAG
🏴
ZWJ(ZERO WIDTH JOINER)(U+200D)で結合して合成することになっている。
過去の仕様とのブレがあり、ZWJがはさまらない可能性がある?
合成の順序
ベースとなる文字
絵文字のモディファイア(実質、肌色)か、絵文字の表現セレクタ(?
髪型
色
性別
方向
肌色(仕様書上、Diversity と呼ばれているのでやや意味不明)
Unicode 8.0 から
人の肌に対するモディファイアとして機能する。それ以外では単に後ろに色の四角が表示されるのみで合成されない。
EMOJI MODIFIER FITZPATRICK TYPE-1-2~6
Fitzpatrick スケールを参考にしているが、1と2はなぜか統合されている。
U+1F3FB(1-2)~U+1F3FF(6)
fitspatrick🏻 | U+1F3FB | Emoji Modifier Fitzpatrick Type-1-2 | light skin tone |
🏼 | U+1F3FC | Emoji Modifier Fitzpatrick Type-3 | medium-light skin tone |
🏽 | U+1F3FD | Emoji Modifier Fitzpatrick Type-4 | medium skin tone |
🏾 | U+1F3FE | Emoji Modifier Fitzpatrick Type-5 | medium-dark skin tone |
🏿 | U+1F3FF | Emoji Modifier Fitzpatrick Type-6 | dark skin tone |
これについてはZWJはなくてもよいはず。
髪型
Unicode 8.0 から
ZWJ(U+200D)の後に髪型を付けると合成される。
hair🦰 | U+1F9B0 | Emoji Component Red Hair |
🦱 | U+1F9B1 | Emoji Component Curly Hair |
🦲 | U+1F9B2 | Emoji Component Bald |
🦳 | U+1F9B3 | Emoji Component White Hair |
Emoji Component Red Hair
色
color⬛ | U+2B1B | Black Large Square |
⬜ | U+2B1C | White Large Square |
🟥 | U+1F7E5 | Large Red Square |
🟦 | U+1F7E6 | Large Blue Square |
🟧 | U+1F7E7 | Large Orange Square |
🟨 | U+1F7E8 | Large Yellow Square |
🟩 | U+1F7E9 | Large Green Square |
🟪 | U+1F7EA | Large Purple Square |
🟫 | U+1F7EB | Large Brown Square |
なぜか灰色がないのでカラーコードには使えない。
なぜか形容詞の順序が違う。
🐈⬛
性別または属性
例示として以下が挙げられている
Sign format
走者(U+1F3C3)に男性サイン(♂ U+2642)、女性サイン(♀ U+2640)を合成して、男性走者、女性走者を表す
runnerU+1F3C3 | 🏃 | Runner |
U+1F3C3 U+200D U+2640 | 🏃♀ | Female Runner |
Object format
男性、女性に、ロケットの合成で宇宙飛行士を示す(無茶振り)
事例が用意されているのでその範囲で実装されている模様。
rocketU+1F469 | 👩 |
U+1F469 U+200D U+1F680 | 👩🚀 |
同じ解釈になることが前提で、当然違う解釈だと違う絵文字になってしまう。
向き
runnerU+1F3C3 | 🏃 | Runner |
U+1F3C3 U+200D U+2640 U+FE0F | 🏃➡️ | Runner running to right |
仕様は存在するが、誰も実装できていない模様。
プレゼンテーションスタイル
絵文字の終端に付ける
異体字セレクタ U+FE0E(VS15) を付けると文字的表現(色無し、文字)
異体字セレクタ U+FE0F(VS16) を付けると絵文字的表現(色付き、画像)
presentationU+260E | ☎ | デフォルト(どちらなのかはシステム依存) |
U+260E U+FE0E(VS15) | ☎︎ | 文字表現 |
U+260E U+FE0F(VS16) | ☎️ | 絵文字表現 |