解决乱码问题
1.页面乱码
<%@ page language="java" contentType="text/html;charset=UTF-8"%>2.URL乱码
tomcat->server.xml中port="8080"=>port="8080" URLEncoding="UTF-8"
3.表单内容乱码
<% String userName=request.getParameter("userName"); userName=new String(userName.getBytes("ISO-8859-1"),"utf-8");%>使用过滤器
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;import javax.servlet.UnavailableException;public class SetCharacterEncodingFilter implements Filter {protected FilterConfig filterConfig;protected String encodingName;protected boolean enable;public SetCharacterEncodingFilter() { this.encodingName = "utf-8"; this.enable = false;}public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; loadConfigParams();}private void loadConfigParams() { this.encodingName = this.filterConfig.getInitParameter("encoding"); String strIgnoreFlag = this.filterConfig.getInitParameter("enable"); if (strIgnoreFlag.equalsIgnoreCase("true")) { this.enable = true; } else { this.enable = false; }}public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { if(this.enable) { request.setCharacterEncoding(this.encodingName); } chain.doFilter(request, response);}public void destroy() {}}4.数据库乱码
jdbc:......useUnicode=true;characterEncoding=utf-8
5.eclipse中保存乱码
<%@ page language="java" pageEncoding="utf-8" contentType="text/html;charset=utf-8"%>
6.eclipse显示乱码
Preferences->General->Content Types->Text->JSP
7.下载中文文件名乱码
String fname = "中文";OutputStream os = response.getOutputStream();//取得输出流response.reset();//清空输出流 //下面是对中文文件名的处理response.setCharacterEncoding("UTF-8"); fname = java.net.URLEncoder.encode(fname, "UTF-8");response.setHeader("Content-Disposition", "attachment; filename="+ new String(fname.getBytes("UTF-8"), "gb2312") + ".xls"); response.setContentType("application/msexcel");//定义输出类型 os.close();
页:
[1]