[サンスクリットページ雑感集・技術情報]

Unicodeでローマ字サンスクリットを表示する上での問題点

Since 2004/7/21 Last Updated



  1. 結論からいうと……
     サンスクリットをローマ字で表記するのは一見ラクそうであるが、 上や下に補助記号のついたローマ字は意外に扱いが大変である。
     Unicodeにはいろいろな補助記号のついたローマ字が登録されているので、 これを用いれば一見ローマ字サンスクリットなどラクラク表現できそうだし、 本来は表現できるのだが、現段階ではいろいろ問題がある。 だからこそ私はこのサイトではUnicodeを使わず、すべて画像表示しているのである。



  2. ローマ字サンスクリットを扱うためのUnicode
     Unicodeではローマ字は以下の部分にある。発音記号や全角ローマ字などはとりあえず除く。
    1. Basic Latin (0000-007F)
    2. Latin-1 Supplement (0080-00FF)
    3. Latin Extended-A (0100-017F)
    4. Latin Extended-B (0180-024F)
    5. Latin Extended Additional (1E00-1EFF)
     また、ローマ字の上下などにつける補助記号の類として、
    1. Combining Diacritical Marks (0300-036F)
    がある。
     具体的なコードは、 Unicode協会のサイトのコード表を見てもいいのだが、 WindowsのMS-IMEの「文字一覧」などでもかまわない。
     さしあたり、ローマ字サンスクリットの表記に必要な特殊ローマ字は次の17文字である (実際にはは不要なので16文字としてもいいのだが)。 は上点派も下点派も同じくらい存在しそうなので両方あげておいた。また、 は、Unicodeでは大文字も定義されているが、サンスクリットでは使わないので割愛した。 のコード784(16進数は310)は、mの上の記号部分だけのコードであり、 mの次にこのコードを書けば、アプリケーション側ではちゃんと上につけて表示してくれる(はずである)。
     これらのコードは、utf-8の形で書いてもいいのだが、ここでは安直に、&#xxxxx;という形でそのまま書いてしまう形にした。 これでブラウザははちゃんと表示してくれる(はずである)。さて、どうだろうか。
    文字大文字小文字所属
    10進数16進数表示例10進数16進数表示例
    256 0100 Ā 257 0101 ā Latin Extended-A
    298 012A Ī 299 012B ī Latin Extended-A
    362 016A Ū 363 016B ū Latin Extended-A
    7770 1E5A 7771 1E5B Latin Extended Additional
    7772 1E5C 7773 1E5D Latin Extended Additional
    7734 1E36 7735 1E37 Latin Extended Additional
    7736 1E38 7737 1E39 Latin Extended Additional
      7745 1E41 Latin Extended Additional
      7747 1E43 Latin Extended Additional
      7717 1E25 Latin Extended Additional
      784 0310 ̐m Combining Diacritical Marks
    7748 1E44 7749 1E45 Latin Extended Additional
    209 00D1 Ñ 241 00F1 ñ Latin-1 Supplement
    7788 1E6C 7789 1E6D Latin Extended Additional
    7692 1E0C 7693 1E0D Latin Extended Additional
    7750 1E46 7751 1E47 Latin Extended Additional
    346 015A Ś 347 015B ś Latin Extended-A
    7778 1E62 7779 1E63 Latin Extended Additional




  3. MS-IEお断り!?
     おそらく、多くのみなさんのところでは、かなり多くの文字が□のような形で表示されていると思う。 まんどぅーかのところでも同様である。
     □になるのは、Latin Extended Additionalと書かれたもののすべて。 つまり下点や上点のついた文字すべてである。 それからも、mはいいとして、その隣に変なものが表示されているだけなのではないだろうか。
     Windows98/Meなどを使っている人は、WindowsXPや2000のような多言語対応したOSなら大丈夫なのではないかと思うかもしれないが、XPでも同様である。 また、ツール−インターネットオプション−全般−フォントのところで、Arial Unicode MSや(XP上の)Tahomaのような、Unicodeにちゃんと対応したフォントを指定したとしても同様で、何をやっても□のままである。
     そのくせ、これをコピー&ペーストで、Wordなど(XP上ではメモ帳などでも大丈夫である)に貼り付けて、フォントをArial Unicode MSなりTahomaなり、Unicodeに対応したものにしてくれれば、ちゃんと表示されるはずである。
     このへんでカンのいい人は、問題の所在がWindowsやUnicodeフォントにあるのではなく、どうもMicrosoft Internet Explorer(以下MS-IE)にありそうだということに気づくだろう。 実際、Netscape 7.1Mozilla Firefox 0.9.3などでは、 何の問題もなく表示されるのである。 ズバリこれは、MS-IEのバグというわけなのである。 WindowsばかりかMac上のMS-IEでもこうなるらしいので、ますますこれはMS-IE固有の問題ということになる。
    注記:Opera(8.5)は正しく表示されるが、Windows95/98/Me上ではが表示できないようである。
     これは文字化けとはいっても、単に表示が化けているだけであり、 コード的に化けているわけではないので、 上述のように他のアプリケーションにコピー&ペーストすれば問題は解決するわけであるが、 面倒なことこの上ない。 特に、各種サンスクリット文献のテキストデータベース (たとえば、ゲッチンゲン大学のGRETIL) に登録されているUnicode(utf-8)形式のテキストなどを利用する上では不便きわまりない。 こういうものを利用する機会の多い人は、MS-IE以外のブラウザ(Netscape、Mozillaなど)の使用をお勧めする。
     しかし、サイトの管理者としては、 MS-IEお断りとも言いにくいところがあるし、 世の中まだまだ、旧式のプラットフォームを使用しており、 Unicodeフォントなんかインストールしてないという人も多いであろう。 特にサンスクリットに興味を持つという人は、 文系の老人(その多くは、技術情報に疎いうえ、偏屈なところがある)が多いと思われ、 そういう人たちに手取り足取り、 Unicodeフォントのインストールのしかたを説明するのは疲れてしまう (あ、もしArial Unicode MSのインストールのしかたがわからないという人はこちらを見てね)。
     なお、NetscapeとMozillaは、 インストール直後の状態では文字コードの自動判別がOFFになっており、 英文だのUtf-8だののページを見たあとに、 エンコードを明示していないシフトJISのページに戻ると文字化けしてしまう。 これがイヤならば、「表示」−「文字コード」−「自動判別」−「日本語」としておくとよい。 英語版NetscapeやMozillaならば、View - Character Encording - Auto-Detect - Japaneseである。 こういうのは慣れている人ならば何ということもないのだが、 技術に疎く偏屈な老人たちには「お前のサイトを見た後にteacupの掲示板を見にいくと化ける。 お前のサイトはウイルス(!?)に感染しているのではないか」などと言われてしまいそうである。
     やっぱり当分は、うちのサイトでは、画像表示とKH法ローマナイズとを併用することになるだろう。 それが一番安全で確実だ。
    追記:Windows Vistaに標準搭載されているMS-IE7では一応すべての文字が表示できるようになった。もっとものCombining Diacritical Marksをうまく重ね打ちしてくれずズレてしまうのだが、これは我慢しなければならないのかもしれない。




※ご意見、ご教示などは、に戻り、掲示板あるいはメールで賜るとありがたく思います。