カラー絵文字有効時の全角記号No.37697
dentaku さん 19/11/07 18:52
 
動作環境 - 表示/操作 - 文字の描画
で「カラー絵文字」を有効にすると、Shift-JIS内の記号「♂♀☆★♯♭♪」あたり
の描画が変わります。
変わるのはいいとしても(エンコードがShift-JISなら設定によらずカラー絵文字は
無効ってことでいいような気はしますが)、「♯♭♪」に関しては、何と言ったらい
いのでしょうか、全角幅のまま半角文字になるというか、たとえば「♯♯♯」は「#
# # 」みたいな感じの表示になってしまいます。「☆★」も少し怪しいです。
いくつかフォントを変えて試してみましたが同様のようでした(固定幅)。
これは回避できないのでしょうか。

[ ]
RE:37697 カラー絵文字有効時の全角記号No.37698
秀まるお2 さん 19/11/08 09:47
 
 毎度お手数かけてすみません。

 調べてみた所、たしかにそれらの文字は秀丸エディタで絵文字扱いになってて、Se
goe UI Emojiにて描画するような処理になってました。Segoe UI Emojiで描画しつつ、
実際にはその「☆」とかの文字はSegoe UI Emojiの中にフォント(というか、グリ
フ)が存在しなくて、Windowsの方で勝手に代替フォントで描画されて、結果として
半角文字みたいになってしまうようです。

 僕の処理の中でユニコードのU+2600〜U+27FFまでが全部絵文字扱いになってしまっ
てました。文字コード表を詳しく見ると、そこ全部が絵文字ということじゃないよう
でした。

 絵文字じゃない文字はちゃんと本来のフォントで描画するように修正させていただ
きます。とりあえず、U+2600〜U+27FFまでについて、Windows10の文字コード表でフ
ォントをSegoe UI Emojiにしてうまく描画されてない文字は対象外にするって処理を
させていただきます。

[ ]
RE:37698 カラー絵文字有効時の全角記号No.37701
dentaku さん 19/11/08 18:33
 
ありがとうございます。

>Windows10の文字コード表でフォントをSegoe UI Emojiにしてうまく描画されてない
>文字は対象外にするって処理を

描画されるされないはWindowsやSegoe UI Emojiのバージョンによって変わることも
ありそうですが……。
あと、Segoe UI Emojiにもグリフのある「♂♀」は指定フォントとどっちを優先する
かは微妙なように思いますが、Webブラウザーだと♂♀はEmojiにならないみたいで、
指定フォント優先が一般的なのかなあと思います。

ちょっと話はずれるんですが、フォントを「Segoe UI Emoji」にするとカラーになる
けどほかのフォントにするとならない、って文字がちょいちょいあるようですね。た
とえばU+2194のあたりとか。
Emojiはあまり触ってなくてよくわかりませんけど。

[ ]
RE:37701 カラー絵文字有効時の全角記号No.37704
秀まるお2 さん 19/11/09 18:29
 
 その♂♀ですが、いくつかのブラウザでテストしてみたら、たしかにみんな白黒で
出てくるようでした。

 それと、U+2194の文字は、秀丸エディタではカラー絵文字とは判定しないロジック
になってました。
 (理由はよく分からないけども)

 他にも、ブラウザで見てカラーにならないけどSegoe UI Emojiにカラーグリフが存
在してる文字があるかなぁと思って、以下のマクロでテストデータを作って見比べて
みたら、いっぱいあるみたいです。

    newfile;
    insert "<html>\n<meta charset=\"utf-8\">\n<body>\n";
    #code = 0x2500;
    while( #code <= 0x27FF ) {
        insert "<font face=\"Segoe UI Emoji\">" + unichar(#code) + "</font>"
 + unichar(#code) + " U+" + hex(#code) + "<br>\n";
        #code = #code + 1;
    }
    insert "\n</body>\n</html>\n";

 上から見ていくと、

U+25B6
U+25C0
U+2600
U+2602
U+2603
U+2604
...

 っといった具合に多数あります。

 果たしてこれら全部、ブラウザで白黒になる物は白黒にすべきってことにしないと
いけないのやら?。何かちゃんとしたルールがあるといいんですが、ちょっとどうす
べきなのか、よく分からずです。

 この辺は別途検討課題とさせていただいて、ネット検索などしてルールを探してみ
ます。あるいは何かここにルールが書いてある的なサイトがあったら教えていただけ
ると助かります。

 とりあえずは、37697番発言で連絡いただいたバグ修正(というか、手抜き修正)
をした物で一回アップロードしようと思います。

[ ]
RE:37704 カラー絵文字有効時の全角記号No.37705
dentaku さん 19/11/10 00:26
 
すみません、ブラウザーを引き合いに出しましたが、秀丸エディタとして「(Segoe
UI Emojiに)カラー絵文字のグリフがある場合にはそちらを優先して表示する」とい
う動作なら、それは正しいような気がします。
それに現状、Webブラウザー間でも違いがあるみたいですね。秀まるお2さんのマクロ
で作ったHTMLでも、たとえばU+26BEがChromeではカラー、Firefoxでは白黒といった
違いがありました(今後も変わっていきそうな気がします)。

なので、グリフのある「♂♀」はカラー絵文字ということでいいと思います。
ただ個人的に、Unicodeテキストは別として、普通のShift-JISテキストの表示(固定
幅フォントを指定)にSegoe UI Emojiが混ざっちゃうのはちょっと違和感があるとこ
ろではあります。まあ「カラー絵文字」をオフにすればいい話ですけど。

[ ]
RE:37704 カラー絵文字有効時の全角記号No.37710
colder さん 19/11/10 20:59
 
カラー絵文字で表示するか通常の文字で表示するかを指定する異体字セレクタとかも
あったりします。
U+FE0E 通常の文字で表示
U+FE0F カラー絵文字で表示
http://www.unicode.org/Public/emoji/12.1/emoji-variation-sequences.txt

[ ]
RE:37710 カラー絵文字有効時の全角記号No.37714
秀まるお2 さん 19/11/11 09:20
 
 そのカラー絵文字/通常絵文字の異体字セレクタについては知らなくて、対応もし
てませんでした。なんとか対応してみます。

[ ]
RE:37705 カラー絵文字有効時の全角記号No.37715
秀まるお2 さん 19/11/11 09:33
 
 とりあえず、Shift-JIS範囲内の文字で、ブラウザでも白黒なのは秀丸でも白黒に
なるようにしようかなぁと思います。一回見直して考えてみます。

[ ]
RE:37715 カラー絵文字有効時の全角記号No.37718
秀まるお2 さん 19/11/11 18:34
 
 こっちにコメントしてしまいますが・・・

 まず、Shift-JIS範囲内の文字のうち、秀丸エディタがカラーで描画してるのは、
♂♀の文字だけかと思います。というのは、ソースコード見直して特別な処理してる
のが、この2文字だけなので・・・。

 それと、U+FE0E, U+FE0Fの文字対応をしようと思ったら、上記の2文字があると大
変処理が面倒になりまして・・・やはりこの2文字については白黒で出すように修正
させていただくことにします。そうすると、こちの対応もかなり楽に出来ます。

 ブラウザでも試してみたんですが、例えばカラーるする用に、「♂」にU+FE0Fを付
けてもカラーでは出てきませんでした。ということは、カラー表示は対応しなくても
いいだろうということになります。

 基本的にブラウザで白黒表示される文字にU+FE0Fを付けてもカラーで出てくること
は無さそうです。ということで、秀丸エディタ側でもそういう処理はしないでおきま
す。あくまでカラーの物がU+FE0Eにて白黒に出来る、というだけにします。

 まとめると・・・

 − ♂♀の文字は白黒に変更。
 − U+FE0E, U+FE0F対応するけど、実際の動作としては、
    ・U+FE0Fは無視される。(結合はするけど白黒文字がカラーになることは無
い)
    ・U+FE0Eについてはカラー絵文字が白黒表示されるだけの変化のみ。

 ということにさせていただきます。

[ ]
RE:37718 カラー絵文字有効時の全角記号No.37719
dentaku さん 19/11/12 07:35
 
ありがとうございます。
とりあえずShift-JISの範囲に関しては絵文字サポートなしに変更、結果「♂♀☆★
♯♭♪」の描画はカラー絵文字オンにしても変わらなくなる、ってことでしょうかね。

[ ]
RE:37719 カラー絵文字有効時の全角記号No.37720
秀まるお2 さん 19/11/12 10:53
 
 そもそも的に、最初の話がそれらの文字についての話ということで・・・。ボケて
ました。

 ♂♀文字について特別な処理があったのですけど、この2文字だけは結合文字の途
中に混じることがありまして、それについてはやはり特別な処理が必要なままでした。
その辺よく理解してませんでした。

 とりあえず、「♂♀☆★♯♭♪」についてはちゃんと白黒で出るように修正させて
いただきます。

 次の秀丸エディタ/秀丸メールにて対応させていただきます。

[ ]
RE:37720 カラー絵文字有効時の全角記号No.37721
dentaku さん 19/11/12 21:33
 
とりあえずそういうことで、ありがとうございます。

繰り返しになるようですけど、一応、Shift-JISの範囲でもカラー絵文字に対応する
のはアリだと思います(今後Segoe UI Emojiに「☆★♯♭♪」その他のグリフも追加
されるかもしれませんし……)。
今回は「☆★♯♭♪」の表示がちょっとおかしい、という話でしたが、もしそれらに
グリフがあってカラーで表示されていたとしたら「そういうものか」で済んでいた可
能性が高いです。

[ ]
RE:37714 カラー絵文字有効時の全角記号No.37722
秀まるお2 さん 19/11/14 08:37
 
 追加でコメントさせていただきますが、U+FE0Eの白黒にする異体字セレクタ対応を
一応しました。

 白黒異体字セレクタが効くのは、基本的に、結合してない、単独の絵文字だけにな
ります。例えば家族絵文字や肌色指定付きの絵文字についてはU+FE0Eを付けてもカ
ラーのままで出てきます。

 一応、FirefoxやChromeブラウザも同じような動作になってたし、結合絵文字を無
理矢理白黒で描画しようとすると、なぜだかうまくいかない文字があって、挫折しま
した。

 あと、今回から白黒で出てくるようになった「♂♀」の文字などにU+FE0Fのカラー
化セレクタが付いていても、やはり白黒で出てきます。この辺もFirefox等で同じだ
ったので、そうしています。
 (プログラミング的にも実現困難だし)

 ヘルプなどには記載してないですが、一応そういう仕様ということでお願いします。

[ ]