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");
沒有留言:
張貼留言