本文章以 UTF-8 為例,傳統的做法是用:
String keyword = new String(request.getParameter("keyword").getBytes("iso-8859-1"),"utf-8");
如果用 Tomcat 5.0.1.6 以上的版本是最好處理的,直接改 server.xml ,找到 Connector 加上紅字的部份就可以了。
<Connector port="8088" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" />
另外如果要從 JSP 丟出一個 URL 的中文參數值,最好是用 URLEncode 的方式比較能確保的資料是正確的。
範例:
<a href=seach.jsp?keyword=<%= java.net.URLEncoder.encode(keyword,"UTF-8") %>> 再搜尋 </a>
2 comments On [JSP] QueryString 及 Form GET 的中文亂碼處理
如果是form的表单提交使用get方法呢?
你说的URLEncoder.encode()方法就用不上了。
To 無聊神燈
既然都已經寫成form 了 就用post 拉 為何自尋煩惱…
不過本主這一個方法只能解在tomcat 上的問題…
其他server 就無解…
而且有些中文有跳脫字元也無法解喔…