2017-03-08 8 views
61

赤い心臓の絵文字(❤️) "\ u2764 \ uFE0F"には、2つのユニコードコードポイントが必要です。具体的には、Heavy Black Heartの後にVariation Selectorが続きます。しかし、blue,green,yellowおよびpurpleはそれぞれ独自のコードポイントを持っています。なぜ赤い心臓の絵文字は2つのコードポイントを必要としますが、他の色の心臓は1つ必要ですか?

なぜ赤が違うのですか?

答えて

51

歴史的な理由から。元々、Emojisをサポートしていた最初のアプリケーションが赤い心臓としてレンダリングすることを決めたのは、U + 2764 HEAVY BLACK HEARTだけでした。これらの初期のアプリケーションは、常にU + 2764を絵文字として表示します。その後、これは悪いアイデアであり、Emojisのバリエーションセレクタが標準化されていることがわかりました。追加の心エモジスが追加されたとき、別の赤い心臓の必要はなく、省略されました。代わりに、別の黒い心臓の絵文字U + 1F5A4があります。

アプリケーションでは、絵文字バリエーションセレクタが他のハートコードポイントにも追加される必要があります。しかし、PURPLE HEARTのような文字を非絵文字にするのはあまり意味がありません。しかし、ヘビー・ブラック・ハートは、しばしば元の平らな重い黒いハート・キャラクターとしてレンダリングされることを意図しています。

+0

黒い絵文字の心臓ではなく、他の色の心臓が、最初の絵文字にありましたが、2764だけが既存のシンボルの解釈として定義されていました。 (少なくとも、カードスーツを避けるのは当然です) –

23

ヘビーホワイトハートは、絵文字の数十年前にUnicodeに追加されました。 EmojiがUnicode 6に組み込まれたとき、既存の文字は不要な重複を避けるために単に絵文字として再利用されました。その後、表示方法をよりよく制御できるように、非emojiキャラクタセットにもマッピングされるキャラクタのバリエーションシーケンスが定義されました。たとえば、U + 2744❄SNOWFLAKEはもともとZapf Dingbats(私は信じています)からですが、後で絵文字にもなりました。したがって、元のテキストスタイルの表示を強制したい場合は、VARIATION SELECTOR-15(resultingの結果)を使用することができます。新しい絵文字スタイルの表示を強制したい場合は、VARIATION SELECTOR-16を使用します)。

ただし、現時点では実際にこれらのバリエーションシーケンスを正しくサポートしているプラ​​ットフォームはあまりありません。また、絵文字キーボードを使用しているときに、バリエーションセレクタを自動的に適用するわけではありません。理論的には、❤と❄(とmany other emoji)は、デフォルトでVS16なしでテキストスタイルとして表示する必要がありますが、多くのアプリケーションでも同様に無視されます。

I have a list of all code points that can display differently via a variation sequence, on my website, if you're interested。 6月の次のUnicodeアップデートではさらにいくつか追加する予定です。

+1

注:Zapf Dingbats(フォント)≠Dingbats(Unicodeセクション) –

関連する問題