//一般web开发要求统一字符集,最好采用UTF-8,UTF-8所包含的字符比较全
//1,一定要先写第一条语句
request.setCharacterEncoding("utf8");
String str = request.getParameter("str");
=================================
//2,写个工具类
public class Chinese {
public static String toChinese(String strvalue) {
try {
if (strvalue == null) {
return "";
} else {
strvalue = new String(strvalue.getBytes("ISO8859_1"), "UTF-8");
return strvalue;
}
} catch (Exception e) {
return "";
}
}
}
String str= Chinese.toChinese(request.getParameter("str"));
=================================
//3,过滤器
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class EncodingFilter implements Filter {
private String charset = null;
public void destroy() {
}
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
req.setCharacterEncoding(this.charset);
chain.doFilter(req, resp);
}
public void init(FilterConfig arg0) throws ServletException {
//这里的charset是从web.xml文件中获取
this.charset = arg0.getInitParameter("charset");
}
}
web.xml
<!-- 解决中文乱码的过滤器 -->
<filter>
<filter-name>encoding</filter-name>
<filter-class>com.filter.EncodingFilter</filter-class>
<init-param>
<param-name>charset</param-name>
<param-value>utf8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>