Firefox で半角チルダが全角になる件について
Firefox を使っていて,とある CGI からフォーム送信すると,POST した文字列中の「~」(半角チルダ) が勝手に「〜」(全角チルダ) に変換されてしまうという現象を体験した.むきー.
ぐぐってみると,Safari ではそういうバグが実際にあるそうなのだが,
- http://mtlab.ecn.fpu.ac.jp/WSM_2003/030209115932.html
- http://pukiwiki.sourceforge.jp/dev/?BugTrack%2F397
ここによると,Safari でこの現象が起こる条件は
だそうで,今回の Firefox での怪現象もまさにこの条件にあてはまっている.しかも謎なことに,同じページでもこの現象が起こるときと起こらない時があるのだ.
1. フォームページの HTML がそもそも Shift_JIS である。または、 Safari が自動判別により Shift_JIS だと判定した。あるいは、 [表示]→[テキストエンコーディング] メニューでユザが明示的に Shift_JIS を選択した。
2. この状態の時、日本語な文字と同時に半角チルダを使う。
とりあえずチルダを「%7e」にして対処しているが,なんなんですかね? これ.
追記: これか? Unicode と Shift-JIS のマッピングの問題なのか?