趣旨には賛同するけど私的には森林太郎を救って脚気の犠牲者の恨みを買いたくはないよなあ。

革命の日々! プロジェクト「セーブ・ザ・鷗外」
いかついオッサンが「たすけてー」と泣いている様は想像するだに楽しいのでこうしてみた。

んで、本題。

革命の日々! プロジェクト「セーブ・ザ・鷗外」
HTMLの規格上、ブラウザは文字列をPOSTするのに、 のmethod属性を設定しないと文字列を URLEncodingというエンコーディングを行ってからPOSTします。

とは、実は今では限りません。<form>タグでenctypeの指定をはしょるとapplication/x-www-form-urlencodedになりますが、もう一つ、multipart/form-dataというものが存在します。主にファイルのアップロードの際に使われているMIME Typeですが、ファイルのアップロードでなくても使う事ができます。

以下、論より証拠。

multipart/form-data
application/x-www-form-urlencoded

CGI.pmをはじめ、今時のCGI関連のモジュールはたいていどちらもうまく扱えますが、この点留意が必要です。

あとこれを見るとお気づきだと思いますが、multipart/form-dataの場合、データは加工なしでそのまま送られます。

ファイルのアップロードぐらいしか使われていないmultipart/form-dataですが、「受け入れ態勢」は整っているわけですし、この通り文字化け回避の手段にもなりますし、もっと使われていもいいと思います。

Dan the Man with Too Many Encodings to Support