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");
のように動的に設定する必要があるようだ。
今一釈然としないが。
0 件のコメント:
コメントを投稿