首页 > 代码库 > 解决Web工程乱码问题

解决Web工程乱码问题

1.servlet跳转到jsp页面

        在JSP中涉及到使用Servlet进行一些逻辑处理  处理完后进行页面跳转  如在Servlet中进行的request.getRequestDispatcher("index.jsp").forward(request, response);  这样的跳转 可是有时候我们在跳转的时候  会遇到中文乱码的问题  就算是同一个页面  你进行过一些处理后调回本页面  也可能遇到这样的情况 也许你会说你没有啊  因为出现这种情况是你的Servlet中存在这样的语句:PrintWriter out = response.getWriter();   也许你也有设置他的字符集  可是正确的解决方法是:

        在PrintWriter out = response.getWriter();之前设置他的字符集,如:response.setCharacterEncoding("GBK");这样跳转的页面也就不会出现中文乱码了

2.servlet传到数据库产生的乱码问题

(1)建立一个字符串转换类,如下所示

import java.io.UnsupportedEncodingException;


public class StringTo {


public static String ConvertoCN(String str)
{
byte[] bs;
String str1 = null ;
try {
bs = str.getBytes("ISO-8859-1");
str1 = new String(bs,"utf-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return str1;
}
}

然后把request.getParameter("name")等类似的改为

StringTo.ConvertoCN(request.getParameter("name"));问题解决

3.jsp中的乱码问题(分三步)

(1)统一格式,我选的是UTF-8

(2)选择window->prerences->general->workspace->other改为UTF-8

(3)另外jsp中也要统一格式,因为我选的是UTF-8

代码如下所示

<%@ page language="java" import="java.util.*"  pageEncoding="UTF-8"%>


对于jsp中已造成乱码的问题自己手动改正


(4)自己写一个filter过滤器

(5)

数据库乱码(mysql)

统一数据库和工程编码格式

 conn=DriverManager.getConnection("jdbc:MySQL://localhost:3306/test?useUnicode=true&amp&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull","root","123");