基本情况:数据库mysql
以下是数据库的my.ini的几根关键参数
[client]
port=3306
[mysql]
default-character-set=gb2312
character-set-server=gb2312
数据库建立的编码是gb2312-----做的是登录页面-------
用servlet做的 关键代码:
request.setCharacterEncoding("GBK");
response.setCharacterEncoding("GBK");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String userName = request.getParameter("userName");
String password = request.getParameter("password");
String passwordConfirm = request.getParameter("password1");
String email = request.getParameter("email");
String tel = request.getParameter("tel");
int ut_type = new Integer(request.getParameter("ut_type"));
int m = 0;
Manager manager = new Manager();
manager.setMa_name(userName);
manager.setMa_passwd(password);
manager.setMa_tel(tel);
manager.setUt_id(ut_type);
ManagerDao managerDao = DaoFactory.getManagerInstance();
m = managerDao.addManager(manager);
out.println(manager.getMa_name());
if (m == 0) {
out.println("抱歉,您没有注册成功,请联系管理员!");
}
if (m != 0) {
out.println("您已经注册成功");
}这是那个登录页面的编码参数
<meta http-equiv="Content-Type" content="text/html; charset=GBK" />
这样的话插入好了就是在数据库中是乱码
经过测试
表单到达servlet这个过程我打印的那些都不是乱码 中文
现在求求教经验丰富的老师们

解决方案 »

  1.   

    mysql的东东都忘光了,记得有个可以设置编码的晚了怎么写了,在查询和操作数据前先执行以下就没问题了
      

  2.   

    是不是set names gbk之类的
      

  3.   

    我记得以前写mysql的项目也没用到这个呀,只要在插入数据前保证都是正确的中文就没问题的
      

  4.   

    这是最后一道保险,不加的前提是一定要保证提交数据的编码和数据库设置的要一致。mysql最烦的就是编码问题。
      

  5.   

    和安装mySql时选择的编码方式有关系,默认好像Latin,以前也遇到过这样的问题。
      

  6.   

    断点下manager.setMa_passwd(password);
            manager.setMa_tel(tel);
    实体里面这两个参数乱码么?
    如果还乱码 你连数据库用的jdbc么 用jdbc插入数据试下还乱码么 ?如果还乱 数据库编码修改百度下
      

  7.   

    楼上的们我解决了 重装了数据库,做了个绿色版的,免安装的,真是蛋疼了,之前该.ini什么的都没有,果断卸载了换了个就好了,乱码问题结局了,提醒大家用mysql之前好好考虑一下怎么搞要不搞到一般发现怎么整都是乱码就嗝屁了