高校生の教材にできそうだと思って、メモしておきます。
メールアドレスをエンコードするとはここでは文字をアスキーコードに変換して
「&#(アスキー10進数);」「&#x(アスキー16進数);」
とすることとします。
ソースを見るとメールアドレスには見えないですが、ブラウザを通して見ると普通通りの文字として見ることができます。
たとえば「a」という文字はアスキーコードで10進数で「97」、16進数で表すと「61」になります。
「a」「a」と書くとホームページ上にある文字は「a」と表記されます。
(まだ自分ではしていないので詳細不明)
基本にできるVBS http://www.puni.ne.jp/~toumin/scripting/mailenc.html
追加する関数 Hex() 16進数に変換
使った主な関数等
rand 乱数を発生させる
length 文字の長さを取り出す
substr 文字を取り出す substr($wk,0,1)で先頭から一文字を取り出す
ord 最初の文字をアスキーにする
文字の結合はドットでつなげる $ml_asc[$i] ="&#".$asc.";";
16進数で表示する $asc16 = sprintf("%lx", $asc);
ブラウザ上にそのまま表記するため「&」を「&」とする $wk =~ s/&/&/g;
実際に作ったもののソースはこちら