>>537
スマソ、ちょっとレベルを低く見すぎた。しかしそういうことは初めに(ry
混乱してるだけだと思うが、そう悩むことではないと思うぞ。

まずCGI側がFormに流し込む、生のテキスト「&」を持っているとする。
HTML::FillInFormは生のテキストをHTMLに変換する。「value="&"」
で、ブラウザはHTMLを解釈して元のテキストに戻してからフォームを表示する。[&]
Submitされると"生のテキストを"URLエンコードなり何なりしてCGIに送り返す。「hoge=%26amp%3B」
で、CGIはURLエンコードのデコード処理をして、生のテキスト「&」を受け取ることになるわけだ。

なぜに二回以上変換するようなことになるのかな…