数値文字参照
数値文字参照ツールを使うと、全角文字はもちろん、半角文字や記号といったあらゆる文字をある一定の規則を持った符号に置き換えることができます。
使い方もシンプルで、入力欄に変換したい文字を入力し、変換ボタンを押すだけです。
その際、10進数にするのか16進数にするのかを選択できます。
よくわからない場合はそのままでも問題ありません。
使い方
例えば、「あ」という文字であれば、10進数であれば「あ」、16進数であれば「あ」という文字列に変換してくれます。
そしてこの変換された文字列を、HTMLタグではさんでやると、再び「あ」という文字として読めるようになるのです。
「sample1.html」で確認してみてください。
中身(ソース)も確認しておいてくださいね。
インターネットエクスプローラであれば、「表示」メニューの中の「ソース」を選ぶことで確認できます。
ブラウザ上では「ああ」と表示されているのに、HTMLソースには「あ」という文字は存在していないのです。
これって結構おもしろいとは思いませんか?
文字化け対策
数値文字参照を使うと、Perl/CGIプログラムで文字化けしてしまう文字であっても正常に表示させることができます。
例えば、Shift_Jisコードの「表示」という、文字化けの代表みたいな文字列であっても問題ないのです。
「sample2.cgi」をみてください。
しっかり文字化けしていますよね。
「sample2.cgi」の中身はこんな感じです。
#!/usr/bin/perl
print "Content-type: text/html; charset=shift_jis\n\n";
print "表示";
exit;
これを数値文字参照ツールを使って、文字列「表示」を10進数に変換してみると…。
「sample3.cgi」のようになります。
文字化けが解消しているのが確認できますよね。
「sample3.cgi」の中身はこんな感じです。
#!/usr/bin/perl
print "Content-type: text/html; charset=shift_jis\n\n";
print "表示";
exit;
今回はたまたま10進数に変換しましたが、16進数でも同じ結果を得ることができます。
スパムメール対策
数値文字参照ツールで変換された符号というのは、HTMLタグの一部として組み込むこともできます。
今までは普通にHTMLタグではさんで使ってきましたが、中に組み込んで使うこともできるのです。
HTMLタグのメール送信リンクがありますよね。
例えば、「<a href="mailto:メールアドレス">メール送信にはここをクリック</a>」こんな感じのリンクタグです。
この中のメールアドレス部分を数値文字参照ツールで変換した符号に置き換えることにより、ウェブページ上に直接あなたのメールアドレスを掲載するリスクを回避できます。
「sample4.html」を見てください。
メール送信リンクが掲載されていますが、HTMLソースには直接載っていませんよね。
ウェブページ上に直接メールアドレスを載せていると、スパム業者のメールアドレス回収プログラムがそのページを巡回したときに、しっかり回収されてしまいます。
そして後から、わけのわからないスパムメールが送りつけられてくるわけですね。
それを知っている人の中には、メールアドレスの「@」部分を★などにして掲載し、メールを送る際は書き換えてくださいなどといっています。
このやり方でもいいのですが、あまりスマートなやり方ではないですよね。
なので、数値文字参照ツールを使って、メールアドレスを符号化してしまいましょう。
注意事項としては、メールアドレスを暗号化しているわけではないというところです。
ある一定の規則に従って符号化しているだけですから、メールアドレス回収プログラムがこの符号の読み取りに対応していた場合は、無意味だということを理解しておきましょう。
100%の対策ではありませんが、興味の在る場合は試してみてはいかがでしょうか…。