lilin745997 发表于 2013-1-28 19:11:37

解决乱码问题

 
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]
查看完整版本: 解决乱码问题