備忘録のような何か

何か += 備忘録( 日々のこと, 妄想, IT, DIY, 畑仕事 );

合成用区分符号

移転しました。

約5秒後に自動的にリダイレクトします。



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

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

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

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

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

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

具体的に言うと

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

こういうやつです。

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

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

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

  1. まずは元となる顔文字を用意します。
    ( °з°)
  2. 次に合成用のダイアクリティカルマークを用意します。
    f:id:m_uta:20130121210006p:plain
  3. 元の顔文字の目の部分"°"の後ろにダイアクリティカルマークを追加します。
    f:id:m_uta:20130121210011p:plain
  4. もう一つ追加します。
    f:id:m_uta:20130121210021p:plain
  5. あとは好きなだけ追加すればOKです。
    f:id:m_uta:20130121205958p:plain

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

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

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

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