英字以外の文字の表示

文字セットを設定する代わりに特殊文字のシーケンスを使用することにより、クライアントのブラウザへのレスポンスに英字以外の文字を送信できます。このセクションでは、HTML エンティティ と Unicode シーケンスの使用方法を説明します。

HTML エンティティの使用

HTML 2.0 には、クライアントに特殊文字を送信できる HTML エンティティと呼ばれる文字シーケンスが導入されました。

HTML エンティティは、アンパサンド (&) で始まりセミコロン (;) で終わります。次の HTML エンティティでは、括弧 (< >) が表示されます。

&lt;HTML&gt; 

この例は、ブラウザで次のように表示されます。

<HTML>
ブラウザは、特殊文字を HTML とは解釈しません。

英字以外の文字を HTML エンティティとして表現する場合、その文字を表わす言語のエンティティを使用する必要があります。次の例では、文字 A を 3 種類の言語で表示する HTMLエンティティを使用します。

...
out.println("英語: &#65;");
out.println("ギリシャ語: &#937;");
out.println("キリル語: &#1105;")
...

HTML エンティティのリストについては、http://www.ramsch.org/martin/uni/fmi-hp/iso8859-1.html をご覧ください。

Unicode シーケンスの使用

HTML 4.0 では、Unicode シーケンスにマッピングされるように HTML エンティティが拡張されています。Unicode コンソーシアムは、ほとんどすべての言語を 1 つのテーブルにマッピングする Unicode 文字セットを定義しています。Unicode は、すべての文字が HTML エンティティの定義と同じ 2 バイトのシーケンス (1 バイトの ASCII 文字ではない) として定義されています。Unicode 2.1 標準では、約 40,000 種類の文字のエンコードが定義されています。

Unicode シーケンスは、エスケープ u (¥u) と、それに続いて文字を表す 2 バイトで構成されます。次の Unicode シーケンスでは括弧 (< >) が表示されます。

¥u003CHTML¥u003E

この例は、ブラウザで次のように表示されます。

<HTML>

ブラウザは、特殊文字を HTML とは解釈しません。

次のサーブレットコードは、Unicode を使用して日本語で Hello World をプリントします。

out.println("<b>¥u30cf¥u30ed¥u30fc¥u30ef¥u30fc¥u30eb¥u30c9</b>");

次の JSP コードは、英語、日本語、韓国語で Hello World をプリントします。

<h2><%= "¥u0048¥u0065¥u006C¥u006C¥u006F 
¥u0057¥u006F¥u0072¥u006C¥u0064" %></h2>
<h2><%= "¥u30CF¥u30ED¥u30FC ¥u30EF¥u30FC¥u30EB¥u30C9" %></h2>
<h2><%= "¥uD5EC¥uB85C ¥uC6D4¥uB4DC" %></h2>

Unicode シーケンス文字のリストについては、http://www.unicode.org をご覧ください。

メモ:  一部の文字セットを表示するには、追加言語サポートをコンピュータにインストールする必要があります。詳細については、ご使用のオペレーティングシステムのドキュメントを参照してください。