String keyword = new String(request.getParameter("keyword").getBytes("iso-8859-1"),"utf-8");
2, 就是從 tomcat 的配置入手,修改 server.xml 文件 (SUN 不推薦此做法)<Connector port="8088" maxThreads="150"
minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443"
acceptCount="100" debug="0" connectionTimeout="20000"
disableUploadTimeout="true" URIEncoding="UTF-8" />
下面給大家介紹給一勞永逸的做法,搞個(gè)過(guò)濾器既能解決 GET 編碼,又能解決 POST 編碼,是不是很 cool ?public class CnRequestWrapper extends HttpServletRequestWrapper { public CnRequestWrapper(HttpServletRequest request) { super(request); }
@Override public String getParameter(String name) { String value = super.getParameter(name); if (value != null && !"".equals(value)) { try { value = new String(value.getBytes(), "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } return value; }
}
然后在自己的 CharsetFilter 中使用這個(gè)自定義的包裝器將請求包裝一下即可 public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; chain.doFilter(new CnRequestWrapper(request), res); }
最后,在程序中就不用再擔心編碼的問(wèn)題了聯(lián)系客服