ニンジャキャット終了のお知らせ。

ニンジャキャット終了のお知らせ

そんなキャラはいなかった。いいね?

Windows の絵文字の絵柄一新

Windows 11 で Unicode 絵文字の絵柄が一新されると言われていたわけですが。 Windows 11 初期リリースでは変更がなく、先月ようやく新絵文字の一般提供開始されました。 そろそろ万人に(Dev 版とか Beta 版に登録してない人にも)届く頃ではないかと思います。

その結果が冒頭の絵文字。 ちなみに、同じものをこれまでの(Windows 10 とかの)絵文字で表示すると以下のようになります。

Windows 10 のとき

Windows オリジナル絵文字

この猫の絵文字、Windows のオリジナル絵文字です。 一応、ニュースになるくらいにはなってたんですが:

こいつ、元々は「内輪ネタ」だそうです。

このバージョンの Windows 10 (Build 14316)は ZWJ シーケンス(後述)に対応した初めてのバージョンっぽい(たぶん)ので、 それの社内テスト用に「内輪のキャラ」を使っていたんですかね。 なぜ公開した…

ちなみに、Windows 公式ブログでは「いろんな絵文字に対応したよ」というアピールはあるものの、 「オリジナル絵文字を足したよ」なんて言葉はどこにもないので、 特に「良かれと思って足した文字」ではないんじゃないかと思います。 ただの茶目っ気。

Unicode の仕様的な話

Unicode の絵文字がらみの仕様には何段階かあるんですが…

  • Graphme Cluster Boundaries
    • 「一連の文字を、ユーザーインターフェース上は1文字として扱え」という仕様
    • 例えば、「発音区別符号の手前で切ってはいけない」みたいなの
  • ZWJ シーケンス
    • Graphme Cluster の作り方の1つ
    • 接合子と呼ばれる文字の前後で切ってはいけない」という仕様
    • わりかし機械的に判定可能
    • 「複数の絵文字を ZWJ でつないで別の絵文字を作る」という仕様あり
  • RGI 絵文字
    • Recommended for General Interchange (一般にやり取り可能にすることを推奨)
    • 最低ラインどのベンダーでも実装してくれることを期待する絵文字の一覧
    • 1文字1文字リストアップしていて機械判定できない
  • RGI 絵文字 ZWJ シーケンス
    • ZWJ シーケンスとして定義されている RGI 絵文字
    • もし対応していない場合、ZWJ を無視して複数の絵文字で描画すればいいと言うことになってる

みたいな仕様があります。

(12月4日に書いたブログのネタもこの類です。)

ニンジャキャット終了

で、ニンジャキャットは、「RGI ではない ZWJ 絵文字シーケンス」ということになります。なので、

  • ZWJ シーケンスの仕様に沿って機械判定で「1文字扱い」はどのベンダーでもできる
  • RGI ではないので別に Windows 以外のベンダーが実装する義理は全くない
  • 対応していないベンダーでは単に「🐱 と 👤 の2文字」とかで描画すればいい

という文字。

で、冒頭の画像に戻るわけですが、

Windows 10 の頃:

Windows 10

Windows 11 (最近のアップデート):

Windows 11

はい、オリジナル絵文字だったものが、「対応していないので2文字で表示します」状態に変わりました。

元から本当に公開するつもりで作った絵文字なのかどうかすら定かではないですからねぇ。 絵柄一新時に追加するとも思えず…

消えたのは順当。 むしろ、IME の変換候補に痕跡が残ってることが問題…

まあ、「対応する必要性がない ZWJ シーケンス用のテストデータ」としては結構便利だったんですけどね。

Windows 曰く、環境依存

もう1個、IME の問題なんですけども… Windows の IME は「JIS X 0208 にない文字は全部環境依存扱いする」というのがありまして。

要するに Unicode が普及する前、Shift_JIS が主流、かつ、Windows (CP932) と Mac (MacJapanese) でそれぞれが Shift_JIS の独自拡張をしていた時代の名残り。

今となっては Windows でも Mac でも Linux でも iOS でも Android でも表示できる文字も「環境依存」扱いしてきます。 以下一例。

環境依存文字の例

ちなみに、ひとくくりに環境依存と言っても「何の環境に依存した文字か」が全然違います。

  • Unicode からの逆輸入で現在の Shift_JIS (Shift_JIS-2004) には入っている文字
    • スペード(♠): MacJapanese にあった文字
    • あお(靑): CP932 にあった文字
    • おんぷ(♬): Unicode 1.1 での追加
  • Unicode にもない文字
    • にんじゃきゃっと(🐱‍👤とか): Windows 以外で表示するつもりのない真に独自の文字

真に Windows 独自の文字と、今となっては Shift_JIS にすら入っている文字を同じ「環境依存」でくくるのはさすがにどうかと思うんですけどねぇ…

現代の環境依存文字

ちなみに、12月8日に書いたベンゼン環 ⌬ ⏣は、Unicode にはあるけども意図的に Shift_JIS には逆輸入されなかった文字です。

あと、Unicode に入っている以上、たいていの環境で表示はできる(実際、iOS でも Android でも大丈夫)ので、「環境依存」かと言われると微妙。

(まあ、こいつは IME では変換できませんが。文字コード直打ちからの変換とかネットで検索してコピペ以外の手段で入力する方法、一通りどの OS でも僕は知らないです。)

林檎

他に、MacJapanese にはあって Unicode には輸入されなかった文字として某林檎マークとかがあったりします。 「特定の一社のロゴマークとかは Unicode に採用しかねる」という理由で Unicode には入らず、 Mac、iOS では私用領域を使って林檎マークを表示しています。

私用領域なのでどこの誰がどういう文字のために使おうと自由です。 そういう意味で本当に環境依存。 どこかの誰かがこの文字コードに対して💩を表示しようとも文句は言えません。

今だったら🍎(U+1F34E、red apple)と🌈(U+1F308、rainbow)を使った ZWJ シーケンスとかで表現するんでしょうけどねぇ。 MacJapanese から Unicode への移行期には絵文字も ZWJ シーケンスの仕様もありませんでしたから。