フォームのパラメータに含まれる文字列をURLエンコードするのは
httpの規約を守った、ブラウザの正常な動作。
value="bar#hoge"とやってんだから、当然の結果fooにその通り入っただけ。
なんの不思議もなし。