趣旨には賛同するけど私的には森林太郎を救って脚気の犠牲者の恨みを買いたくはないよなあ。
革命の日々! プロジェクト「セーブ・ザ・鷗外」いかついオッサンが「たすけてー」と泣いている様は想像するだに楽しいのでこうしてみた。
んで、本題。
革命の日々! プロジェクト「セーブ・ザ・鷗外」HTMLの規格上、ブラウザは文字列をPOSTするのに、 のmethod属性を設定しないと文字列を URLEncodingというエンコーディングを行ってからPOSTします。
とは、実は今では限りません。<form>タグでenctypeの指定をはしょるとapplication/x-www-form-urlencodedになりますが、もう一つ、multipart/form-dataというものが存在します。主にファイルのアップロードの際に使われているMIME Typeですが、ファイルのアップロードでなくても使う事ができます。
以下、論より証拠。
multipart/form-dataCGI.pmをはじめ、今時のCGI関連のモジュールはたいていどちらもうまく扱えますが、この点留意が必要です。
あとこれを見るとお気づきだと思いますが、multipart/form-dataの場合、データは加工なしでそのまま送られます。
ファイルのアップロードぐらいしか使われていないmultipart/form-dataですが、「受け入れ態勢」は整っているわけですし、この通り文字化け回避の手段にもなりますし、もっと使われていもいいと思います。
Dan the Man with Too Many Encodings to Support
えとですね。このCGI.pm なiframeはUTF-8なページなんですよ。
だから
application/x-www-form-urlencoded のほうで、鷗外と入力すると
t=%E9%B7%97%E5%A4%96
となります。
で、UTF-8だと、あらゆる文字が数値文字参照の必要はないから、multipart/form-dataのほうでも、数値文字参照じゃないように見える。と
あたりまえですね。
でも我々の住んでいるブログ界はEUCがデファクトなので、サイトをUTF-8で作り直せってのは非現実的じゃないかしらん。というのが主張なのですわ(n'ω'`)
だって、トラックバックPINGって内部に文字コード情報がないからEUC決めうちで成り立ってますもん
(と、さっき自分のトラックバックをパケットキャプチャーして始めてしりましたよ。あたしゃ)