1.数据库编码不一致导致乱码。解决方法:首先查看数据库代码,输入:showvariableslike"%char%";确认代码一致,如果不一致,可以输入:SETcharacter_set_client='utf8';SETcharacter_set_connection='utf8';SETcharacter_set_results='utf8';也可以设置为gbk编码;也可以修改安装Mysql目录下的my.ini文件default-character-set=utf-82.jspJSP中jsp的默认编码是ISO-8859-8;只需在JSP页面的header中将其改为<%@pagepageEncoding="UTF-8"contentType="text/html;charset=UTF-8"%>添加下面这句话,告诉浏览器UTF的字符集应该调用-8。3.jsp连接数据库,连接数据库时保存中文乱码jdbc:mysql://localhost:3306/测试?使用Unicode=true&characterEncoding=utf-8如果使用框架连接,可以修改头文件为UTF-8编码。4.使用struts2时可以使用过滤器:先改写一个过滤器包com.oumyye.util;importjava.io.IOException;importjavax.servlet.Filter;importjavax.servlet.FilterChain;importjavax.servlet.FilterConfig;importjavax.servlet.ServletException;importjavax.servlet.ServletRequest;importjavax.servlet.ServletResponse;publicclassCharacterEncodingFilterimplementsFilter{protectedStringencoding=null;protectedFilterConfigfilterConfig=null;publicvoidinit(FilterConfigfilterConfig)throwsServletException{this.filterConfig=filterConfig;this.encoding=filterConfig.getInitParameter("编码");}publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)throwsIOException,ServletEnquence(n;ullending{codingrest)response.setContentType("text/html;charset="+encoding);}chain.doFilter(request,response);}publicvoiddestroy(){this.encoding=null;this.filterConfig=null;}}在web.xml中配置0001webCharacterEncodingFiltercom.oumyye.util.CharacterEncodingFilterencodingUTF-8CharacterEncodingFilter/*REQUESTFORWARD只能用在formPost值,该方法对处理单个字符串的get5中文乱码问题无效Stringnewnewname=newString(name.getBytes("iso-8859-1"),"utf-8"))#p#Attachment:inJSP编码设置1.pageEncoding:<%@pagepageEncoding="UTF-8"%>设置JSP编译成Servlet时使用的编码2.contentType:<%@pagecontentType="text/html;charset=UTF-8"%>Yes服务器响应重新编码,即浏览器中显示的jsp输出流的编码3.html页面charset:网页编码信息,表示页面制作时使用的编码4.request.setCharacterEncoding()--可以在servlet和jsp页面中使用,设置编码,对客户端请求重新编码,即对提交的数据进行编码在后模式。5.response.setCharacterEncoding()--可以在servlet和jsp页面中使用,对服务器响应进行重新编码,即在浏览器中显示的jsp输出流的编码,与<%@pagecontentType="text/html;charset=UTF-8"%>同6.response.setContentType()--可以在servlet和jsp页面中使用,对服务器响应重新编码,即显示的jsp输出流的编码浏览器,与<%@pagecontentType="text/html;charset=UTF-8"%>相同7.response.setHeader("Content-Type","text/html;charset=UTF-8");--可以用在与相同的servlet和jsp页面中