2006年9月16日土曜日

getPrameter(”hoge”)でhogeの値が拾えない。

0 コメント


resinの場合、自動的にページエンコーディングの文字セットを使用して


parameter値を拾ってくれるらしい。


たとえば、hoge.jspとして以下のエンコーディングを指定してる場合



<%@ page contentType="text/xml; charset=UTF-8" %>


hoge.jsp?hoge=%e3%81%bb%e3%81%92をリクエストすると



String hoge = response.getParameter("hoge"); // hoge = ほげ


となり、utf8エンコーディングのパラメータも問題なく取得できる。


しかし、以下のようにEUC-JPだとうまくいかない。



String hoge = response.getParameter("hoge"); # hoge = null


これを回避するには



<%@ page contentType="text/xml; charset=UTF-8" %>


を指定せずに、



response.setHeader("Content-Type", "text/xml; charset=UTF-8");


のように動的に設定する必要があるようだ。


今一釈然としないが。