1.最基本的在jsp页面上要把pageEncoding设置为中文,如: <%@ page language="java" pageEncoding="GBK"%> 2.对于表单的doPost()提交,也会出现中文出现乱码,可以在servlet里设置如下:request.setCharacterEncoding("GBK"),response.setCharacterEncoding("GBK"),不过此方法在每个servlet都要设置,很麻烦,建议写个过滤器设置。可以参考以下: public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest request_1 = (HttpServletRequest) request; HttpServletResponse response_1 = (HttpServletResponse) response; // 转换编码,并且加上去缓存 request_1.setCharacterEncoding("GBK"); response_1.setCharacterEncoding("GBK"); chain.doFilter(request, response); } 3、第三种就是 如果用doGet()提交,后面跟的参数如果也是中文,这个解决方法可以在tomcat或JBoss的配置文件里面配置,以tomcat为例:
在这里面最后加上URIEncoding="GBK". 4、ajax也会产生乱码问题,这个问题可以在tomcat的配置那里解决。 5、文件上传时文件名也会出现乱码。 可以用此方法paramMap.put(fi.getFieldName(), new String(fi.getString().getBytes("ISO-8859-1"),"GBK")); 知识浅陋,若有错误,请大虾指正或其他更多的补充 。
解决中文乱码的常见问题
最新推荐文章于 2024-08-11 08:47:29 发布