JSPエンコーディングでの文字化け

先日の日記でJSPが文字化けする妙なバグがあるらしいということで、色々と調査をしてみた。
[Java][調査済み][文字化け]不思議な現象

<%@page contentType = "text/html; charset =Shift_JIS"%>
<%request.setCharacterEncoding("JISAutoDetect");%> 

<HTML>
<BODY>
<%
	String q1 = request.getParameter("q1");
	out.println(q1);
%>
</BODY>
<HTML>

上記プログラムでパラメータを受け取ろうとするとrequestが文字化けする。原因は、先頭行のcharasetの後ろに1文字分の空白を入れたことでした。ちなみに、Shift_JISの前に空白を入れた場合、本来なら「サポートされていないエンコーディングです」とメッセージが出力されてコンパイルできないところが、charsetの後ろに空白を入れていると、それを検出してくれずにコンパイルできて、requestの文字化けを引き起こしてしまう。
この問題が根深い点は、request以外のデータが文字化けしていないようなので(色々と未確認)、

<%request.setCharacterEncoding("JISAutoDetect");%>

の行が書かれていない場合に、requestデータすらHTML表示が文字化けしないということに尽きる。おかげで、このバグに遭遇した当初、セッションを遷移先ページで表示すると文字化けしていて、上記のようなページでrequestを受け取りセッションをセットしていたページは一切文字化けしていなかったがために非常に苦労しました。問題がどこにあるか分からなくなったのですよ。セッションが文字化けしているので、セッションを表示しているページがおかしいと疑ってしまったんですが、実際には、セッションをセットしているページがおかしかったという・・・
しかし、これらは全てInternet Explorer上でおきた問題なので、FireFox等では発生しないかもしれません。いずれにせよ、さらに調査が必要になる深刻な問題であるでしょう。
余談:僕のプログラムでなかったことも、問題発見が遅れた大きな原因だったりします。人のプログラムを見るのは体力がいると痛感しました。もっともっと経験が必要だと痛感です。