More ソフ得! =ソフトの宝島=

 第42回 Unicoder



数値文字参照形式って何?

「ソフ得!」では、今まで何度か文字コードや、コンピュータ上での日本語文字表記についてこだわってきました。
単純にいえば、Unicodeが完全に定着してしまえば、ほとんどの問題は解決します。文字が出せない、文字が化けるといったトラブルから早く開放されたいものですね。
しかし、この原稿を書いている2004年2月現在、未だにUnicodeは定着していません。
インターネット上でも、多言語環境の確率は難しい課題になっています。
WEBページを読み込むとき、ブラウザはそのページに書かれている言語はどんな文字コードに準拠しているのかを判別します。判別しやすいように、HTMLの<HEAD>部分には、このページはこういう言語で記述されていますよ、という宣言をすることになっています。
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Shift_JIS">
といった記述がそれです。
しかし、ブラウザはときどきこの言語判定を間違えます。そうなると、ページ全体の文字が化けてしまうわけです。
例えば、このページを、文字コードを間違えて読み込むと、こんなことになります。
言語を完全に読み間違えて表示


↑西ヨーロッパ言語と判定して、このページを読み込んだ表示


EUCと誤判定


Shift-JISで書かれたページを日本語EUCと判定して表示↑

なにがなんでもUnicodeとして認識させる方法

ブラウザが言語を誤判定しないようにする最終的な手段が「数値文字参照形式」です。
例えば「&#23665;&#24029;」(実際には&と#も半角)と表記すると、ブラウザはこの数値表記をUnicodeにあてはめ、「山川」と表示してくれます。
この方法ですと、ブラウザが言語を間違って判断していても、数値文字参照形式で記述した部分は文字化けを回避できます。
これってどんなときに役立つのでしょうか。
例えば海外の無料ホームページサービスなどで、フレームに指定したタイトル部分が文字化けすることがあります。そうした場合、この数値文字参照形式で表記しておけば、確実に日本語を表示してくれます。
また、JIS漢字表にない文字でも、パソコンの文字セットにその文字が含まれていれば表示してくれます。「森鴎外」も「森&#x9DD7;外」と記述しておけば、Windowsならば基本文字セットに「鴎」の正字体が入っているので、きちんと正字で表してくれます。
分かりやすいように、右側は文字を拡大して表示させてみましょう。

●普通に書けば……
森鴎外 森鴎外

●数値文字参照形式を使うと……
森鷗外 森鷗外

もちろん、上記の「森鷗外」は画像で表示しているわけではありません。嘘だと思ったら、このページのソースを見てみてください。こうなっています。↓
数値文字参照形式
「鷗」の部分だけ、数値で表記していることが分かりますね。これが数値文字参照形式です。
Unicoderは、文字列を数値文字参照形式に簡単に変換してくれるソフトです。
普通の日本語の文章を入力するのは簡単ですが、鴎の正字体をどうやって呼び出すのかが分かりにくいかもしれません。
これはIMEの文字パレットなどを使って呼び出します。よく使う字は、IMEに単語登録しておけばいいでしょう。
私は「もりおうがい」という読みで「森&#x9DD7;外」と変換されるように辞書登録しています。
Unicoderの画面
上は、Unicoderの画面です。変換方式に2種類ありますが、どちらでも有効です。
変換したものは自動的にクリップボードに入りますので、そのままHTML作成画面(テキストエディタなど)に貼り付けられます。

メールアドレスの数値参照方式化はspam対策にも極めて有効

(2004年11月18日追記)
2003年後半くらいからのspamの異常増加は、世界中のサーバー環境を脅かしています。
ある日突然spamが来るようになった場合、それはあなたのメールアドレスがspam業者にリストとして渡ってしまったことを意味します。
1)WEB上に公開しているメールアドレス(自分のサイトに明記している連絡用アドレスの他、掲示板などに書き込んでしまったもの)
2)メーリングリストに使っているアドレス
3)メールマガジンの申し込みに使っているアドレス
4)通販業者に知らせたアドレス
などは、spamの餌食になると考えてください。
最も多いのは、WEB上に公開しているアドレスを、spam用のメールアドレス収集ロボットが拾い集めるというケースです。これを防ぐためには、メールアドレスの@部分を全角にする、メールアドレス部分を画像にして貼り付けるなどが知られていますが、Unicodeの数値方式にするのも有効です。10進数方式と16進数方式を混在させたり、一部分を普通の文字にしたり、途中に改行コードを入れたりすればなおよいでしょう。
下の図は、Unicoderを使って、<mailto:test@sample.com>という表記部分を一種「暗号化」させた例です。
暗号化したメールアドレス部分
これ↑をHTMLの中に入れると、きちんと↓このように表示されます。
mailto:tes t@sample.com

 このソフトのダウンロードはダウンロードサイトはこちらこちらから (現在、多くのフリーソフトが配布終了になっています。似たようなソフトが出ていないか、窓の杜やVECTORのサイトで探してみてください。) 


 パソコン初心者・探求者のためのガイドブック『パソコンは買ったまま使うな!』『ワードを捨ててエディタを使おう』『テキストファイルとは何か?』のご案内はこちら

前へ前へ  タヌパックのCDご購入はこちら  パソコンは買ったまま使うな    次へ次へ


index | takuki.com |  狛犬ネット | 音楽 | AICコラム |