方法一:只是針對某一個字串起作用
String name=request.getParameter("name");
name=new String(name.getBytes("ISO-8859-1"),"utf-8");
方法二:針對當前頁面有效
request.setCharacterEncoding("gbk");
String name=request.getParameter("name");
方法三:針對真箇web網站有效
採用過濾器原理
public class SetEncodingFilter implements Filter { protected String encoding = null; protected FilterConfig filterConfig = null; protected boolean ignore = true; public void destroy() { this.encoding = null; this.filterConfig = null; } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { if (ignore || (request.getCharacterEncoding() == null)) { request.setCharacterEncoding(selectEncoding(request)); } chain.doFilter(request, response); } public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; this.encoding = filterConfig.getInitParameter("encoding"); String value = filterConfig.getInitParameter("ignore"); if (value == null) this.ignore = true; else if (value.equalsIgnoreCase("true") || value.equalsIgnoreCase("yes")) this.ignore = true; else this.ignore = false; } protected String selectEncoding(ServletRequest request) { return (this.encoding); } public FilterConfig getFilterConfig() { return filterConfig; } public void setFilterConfig(FilterConfig filterConfig) { this.filterConfig = filterConfig; } }
web.xml
<filter> <filter-name>SetCharsetEncodingFilter</filter-name> <filter-class>filter.SetEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>gbk</param-value> </init-param> </filter> <filter-mapping> <filter-name>SetCharsetEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>