↓Windows7+メイリオの環境で、一昨日作った簡易文字パレットに「?0x2776」とクエリすると、同じ黒丸数字がすぐ近くに現れます。同じ字なのに違うコード。検索とかで困るので、少し調べてみました。ブラウザはすべてChromium43。
Contents
ユニコードは「全ての文字に一意の番号を振る」と言うけど
ユニコード公式サイトのWhat is Unicode?の冒頭いわく、
Unicode provides a unique number for every character,
no matter what the platform,
no matter what the program,
no matter what the language.
サイトの日本語訳では「固有の番号」となってますが、要するに文字と番号(コード)が1:1対応すると理解できます。問題は、実態が違うこと。下記が、丸数字を例に「デザインが違うだけなのに、別のコードになるんです!」とハッキリ。
字形の違いが表現されるかは、フォントと環境しだい
冒頭の「同じ黒丸数字」は、本来デザインが違うところメイリオは同じ字形にした結果。上の安岡先生の解説を読むと、もともとZapf Dingbatsという記号用フォントにセリフ・サンセリフ別の丸数字があり、それをUnicodeは違う字として収録したらしいです。
でメイリオは、ゴシック書体としての統一性を考えて?両方サンセリフにしたと※。まぁ肯けますが、文字入力や検索時は注意がいるなぁ…。黒丸数字を一括置換したつもりが、片方とりこぼしたとか。
※自分の推測。8月3日追記
黒丸数字はまだ近くにあったから良いけど、白丸数字は ↓ 文字ブロック自体が違って離れているのでもっと注意。0x2460と0x2780。前者には⑪~⑳(11~20の丸数字)が続いてます。
丸数字をAndroid4.0(ISW16SH)+Opera29で見たら ↓ セリフ/サンセリフ別に表示されました。拡大して初めて分かるレベルだけど。二つ目の画像は全体表示で、違いを判別するのは厳しい。
Androidのフォントは詳しくないので下記を参考にして、ISW16SHに入ってると思われる「モトヤLシーダ3等幅」をダウンロードし、字を調べてみました。
確かにOperaなどブラウザの日本語には「モトヤLシーダ3等幅」が使われてましたが、黒丸数字はもともと収録されてないので ↓ 別のフォントで代替された模様。
こんな風にブラウザ(またはOS)がうまく処理してUnicode本来の「あるべき字形」のフォントが使われればいいけど、できない時も多そう。とくに冒頭のメイリオのように、デフォルトとして使用頻度が高いフォントが「とりあえず同じ字形」で収録している場合…。よほど字にこだわったアプリでない限り、特定の文字だけ「本来あるべき字形」を備えたフォントに置き換えるなんて、まずしないのでは。
よく使う記号で「重複・類似カダログ」があるといいなぁ
先ほどの白丸数字のように、別々の文字ブロックに同じ字が重複して入っているのが面倒。矢印でも、微妙に違うのがあちこちに散らばっているし。
Unicodeの文字・記号をまとめたウェブは結構あるけど、規格どおり文字ブロックありきというか。実際ほしいのは、文字ブロックは置いといて「これらの字(記号)は似てる、フォントによっては同じ、だから間違いやすい」という情報が一覧になってるもの。もう少し探して、なければ自分で作るかなぁ。