code_prettify

2014年4月9日 星期三

tomcat+struts url querystring中文編碼解碼

senario: xmlhttprequest GET傳送含中文資料到 action, AP Server tomcat 6.x, struts 1.x

solution:
1. url path沒有中文,只有傳遞的參數有中文,所以對參數做 encodeURIComponent
2. tomcat \conf\server.xml中 Connector並未設定 URIEncoding屬性(因此預設值 ISO-8859-1)
3. request.getParameter 會做 URLDecode, 但是因為 2., 所以得到的中文是 ISO-8859-1編碼
4.對request.getParameter重新編碼就拿到想要的 utf-8 encoded string
   new String(req.getParameter("xxx").getBytes("ISO-8859-1"), "utf-8");

沒有留言: