http://jprs.jp/ は日本語ドメイン名を普及させようとするサイトである。この入り口のページには日本語ドメイン名を持ついくつかのサイトが紹介されている。
このうち「新宿駅.jp」をクリックすると
が現れる。URL 入力欄に日本語で「 http://新宿駅.jp 」と現れるのが自慢である。
ところでブラウザの「ソースを表示」で内容を読むと
<a href="http://xn--oct34u4y7b.jp/" target="_blank">新宿駅.jp</a>となっている。つまり「新宿駅.jp」の本当のアドレスは「xn--oct34u4y7b.jp」と言う素人には訳の分からない暗号のような文字の列なのである。
国際化ドメイン名を Punny コードに変換する(あるいはその逆) Web サービスが
http://www.idnforums.com/converter/
で行われている。
次のサイトは文字、その UTF-8 code、Penny code など様々な変換を行ってくれる。
http://people.w3.org/rishida/scripts/uniview/conversion
これを
<a href="http://新宿駅.jp">新宿駅.jp</a>としたらどうであろうか?
http://www.ietf.org/rfc/rfc3492.txt
<a href="日本語ファイル.html">日本語ファイル.html</a>となっている。これをクリックすると Mac/Safari では
http://ar.aichi-u.ac.jp/iri/日本語ファイル.htmlと書いたらアクセスできないのかと言えば、それでもアクセスできる。しかしそのあと直ちに日本語の部分は16進数に置き換わる。
-bash$ cat>だ abc -bash$ cat だ abc - bash$bash は非ASCII文字を扱えないので実際の表示は
-bash$ cat>\343\201\240 abc -bash$ cat \343\201\240 abc - bash$となる。
ls でファイル一覧を表示すると
-bash$ ls だ -bash$で何の変哲もないが、出力の内部コードを見るとあっと驚く
-bash$ ls |od -c 0000000 343 201 237 343 202 231 \n 0000007 -bash$なんと「だ」が6バイトでコード化されているのである。
-bash$ python Python 2.3.5 (#1, Aug 22 2005, 22:13:23) [GCC 3.3 20030304 (Apple Computer, Inc. build 1809)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> f=open('だ') >>> f.read() 'abc\n' >>> import os >>> os.listdir('.') ['.DS_Store', '\xe3\x81\x9f\xe3\x82\x99'] >>> g=open('\xe3\x81\x9f\xe3\x82\x99') >>> g.read() 'abc\n' >>> ^D -bash$つまりファイル名が記憶される時に6バイトに引き延ばし、open コールで UTF-8 の3バイトの「だ」をその6バイトにマップしているらしい。この事自体が変なのであるが、たちが悪い事に、これが dirstat コールと首尾一貫していないのである。
ここでは「だ」を例に挙げたが、濁点や半濁点を含む平仮名と片仮名は全て同じ問題を抱えている。
これらの方法に寄って「だ」がどのように見えるかを次に示す。
「だ」 1つのユニコードで表した「だ」 3060 「だ」 「た」+ 結合用濁点 305F+3099 「た゛」 「た」+ 独立濁点 305F+309B現状では見え方はOSやブラウザに依存しているはずである。
平仮名、片仮名、アイヌ用の特殊な片仮名に関するユニコードの規格文書が以下のURLから手に入る。
だ (e3 81 a0) だ (e3 81 9f e3 82 99)これらの2つの「が」は見た目には完全に同じである。これが違う事を確認するには、おのおのの「だ」をコピーして、どこかにペーストし文字コードを調べる以外には方法はない。以下は OSX の ターミナルに「だ」を取り込んでエコーさせて違いを確認している。
-bash$ echo \343\201\240 だ -bash$ echo \343\201\237\343\202\231 だ -bash$
ダイワ.jp e3 83 80 e3 82 a4 e3 83 af . j p ダイワ.jp e3 82 bf e3 82 99 e3 82 a4 e3 83 af . j pPunycode (rfc3492)