合成用区分符号


<2013.01.21追記>
スマホからこのページ見てみると、
意図したとおりに表示されてないことに気がつきました^^;
表示がおかしい箇所については画像にして置き換えています。
ブラウザが対応してないんでしょうかね?
文字コードの問題にはいつも悩まされます。。。


妻から「Twitterで行をはみ出した顔文字があるんだけど、これはなに?」
と聞かれました。

どれどれと見てみると、

なんだこれは?私も初めて見ました。
調べてる過程で見つけた情報はかなり前のものもあったので
こういうもの自体はずっと前から使用されてたんでしょう。
私の目には止まらなかっただけで。

で、調べた結果これは「合成用区分符号」というものが使われている模様。
合成用区分符号の正体は
UnicodeでCombining Diacritical Marksと呼ばれる一連のコード
(U+0300からU+036Fまで)
のことらしいです。

これがなんのためにあるのかというと、

ダイアクリティカルマーク(英語:diacritical mark)は、ラテン文字等の文字で、同じ字形の文字であるが、発音が区別されるべき場合に文字に付される記号のこと。あえて日本語の文字で似た概念を探せば、濁点と半濁点に相当するであろう。満州文字における圏点もこれに類似したものといえる。
(Wikipediaより抜粋)

具体的に言うと

ウムラウト:ä, ö, ü
グレイヴ・アクセント:à, è, ì
チルダ:ñ, ã, õ

こういうやつです。

で、これがどうしたの?と思われるかもしれませんが(笑)
コンピュータ上では、例えば「ñ」の場合、”n”+” ̃”(U+0303) → ñ
という具合になっています。
(※よく使われる文字などには独立した文字コードが与えられています)

つまり、UnicodeでCombining Diacritical Marksと呼ばれる一連のコードは
直前の文字に記号を合成することが出来るという裏の使い方が
隠されていたということです!!(そんなにおおげさに言うことでもない)

では、冒頭の顔文字がどうやって作られているかというと。

1.まずは元となる顔文字を用意します。

( °з°)

2.次に合成用のダイアクリティカルマークを用意します。

3.元の顔文字の目の部分”°”の後ろにダイアクリティカルマークを追加します。

4.もう一つ追加します。

5.あとは好きなだけ追加すればOKです。

という感じ。理屈が分かってしまえば簡単ですね。

しかし、問題はダイアクリティカルマークをどうやって入力するか。
今回はこのサイトで生成したものをコピペしてきました。
でも、いちいちそんな面倒なことは出来ませんよね。

iPhoneだったらUnicoder Lite (App Store)というアプリがあるようです。
探してませんが、Androidにも似たようなものがあるんじゃないでしょうか?
PC/Macの場合はどうなんでしょうね?

ここまで調べてみたけど、今後使う事ないだろうなと思ったので最後は手抜きです^^;

コメント

タイトルとURLをコピーしました