Mac OS Xの文字コード問題に関するメモ このページをアンテナに追加 RSSフィード

2012-08-02

絵文字バリエーション・シーケンスとは何か


  • たとえば、仕事用のメールの署名に「☎」という文字を入れていたら、iPhoneではそれが絵文字の赤電話として表示されてびっくり。というような経験をしたことがある人は、たぶん少なくないと思う。こういうことが起きるのは、「絵文字じゃない文字」と「絵文字」がUnicodeでは同じ符号位置に包摂されていて、どちらが表示されるかはフォント(の優先順位)次第だからだ。

f:id:NAOI:20120801194747p:image

  • ケータイ絵文字をUnicodeに収録する際、Appleはすべての絵文字に独立した(通常の文字とは別の)符号位置を与えたかったようだが、それはかなわなかった。そこで次善の策として、「絵文字じゃない文字」と「絵文字」をプレーン・テキストで区別するメカニズムUnicodeに提案した。それが絵文字バリエーション・シーケンス(EVS)だ*1。EVSはUnicode 6.1に入り、Mountain Lionでサポートされた。下図は、Mountain Lionの文字ビューア。EVSには、「異体字選択符号」ブロックのU+FE0E VARIATION SELECTOR-15またはU+FE0F VARIATION SELECTOR-16を用いる。

f:id:NAOI:20120801194811p:image

  • たとえば「☎」という文字を「テキスト・スタイル」で表示したければ、「☎」の直後にU+FE0E(VS-15)を入力する。そうすると、おそらくMountain LionのAPIでは、フォント・フォールバックの優先順位でAppleカラー絵文字が最下位になるのだろう。逆に「絵文字スタイル」で表示したいなら、U+FE0F(VS-16)を入れればいい。下図は、テキストエディットの標準テキスト・モード。

f:id:NAOI:20120801194832p:image

  • 下図は、Unicode 6.1のSTANDARDIZED VARIANTS(http://www.unicode.org/Public/6.1.0/ucd/StandardizedVariants.html)で定義されている214のEVSについてまとめたもの。「絵文字スタイル」側はすべてAppleカラー絵文字でカバーできるが、「テキスト・スタイル」側の表示はインストールされているフォントに依存する。また、「テキスト・スタイル」を指示するU+FE0E(VS-15)が付いていても、Appleカラー絵文字でしか表示できない文字は、Appleカラー絵文字で表示される。

f:id:NAOI:20120801194846p:image

  • Mountain LionがEVSをサポートしたので、「文字ビューアの『絵文字』から入力した文字には自動的にU+FE0Fが付く」といった実装になっていたりするかなと思って確認してみたが、それはなかった。もしかすると将来的にはそうなるかも。

*1:このエントリでは、絵文字バリエーション・シーケンス(emoji variation sequences)という呼び名を、提案段階のドキュメント(http://std.dkuug.dk/jtc1/sc2/wg2/docs/n4182.pdf)から引用している。最終的な規格上は、標準化されたバリエーション・シーケンス(standerized variation sequences)の一部という扱いであり、絵文字バリエーション・シーケンスという用語が使われているわけではない。