web开发中文数据写入到数据库乱码问题
2013-07-18 15:17
471 查看
第一次开发一个小的项目,经验尚浅,每次测试数据库时,都是随便的输入几个英文字符就行了的,看看数据库中是否显示了,便当做完成任务了。可是由于项目的要求,注册时可以使用中文,当测试时,到数据库中查看居然乱码。曾经看传智的老贺讲web时,项目的结尾就是来探讨和学习这个乱码的问题。他提到过滤器的处理方法,可是自己学的不多,只会在在页面中加入字符编码的控制。现在谈谈我的这种麻烦的解决办法,希望对那些和我一样刚入门的菜鸟有些帮助!
1.在你的jsp页面,也就是你打算提交啊数据到servlet的页面头部添加代码<% request.setCharacterEncoding("ISO8859_1");%>,并且将原来的jsp的页面的编码修改gb2123
2.在你所提交的servlet页面设置编码 request.setCharacterEncoding("ISO8859_1");
3.在servlet里面,对需要写入中文到数据库的的代码段下面都加上一行,例如
String xxx= request.getParameter("xxx");
xxx=new String(xxx.getBytes("ISO8859_1"),"gb2312");
4.这样就可以了
附一个servlet代码》》》》》》》
1.在你的jsp页面,也就是你打算提交啊数据到servlet的页面头部添加代码<% request.setCharacterEncoding("ISO8859_1");%>,并且将原来的jsp的页面的编码修改gb2123
2.在你所提交的servlet页面设置编码 request.setCharacterEncoding("ISO8859_1");
3.在servlet里面,对需要写入中文到数据库的的代码段下面都加上一行,例如
String xxx= request.getParameter("xxx");
xxx=new String(xxx.getBytes("ISO8859_1"),"gb2312");
4.这样就可以了
附一个servlet代码》》》》》》》
package com.action.student; import java.io.IOException; import java.io.PrintWriter; import java.sql.Date; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.dao.StuDao; import com.dao.UserDao; import com.test.md5; public class addStu extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("ISO8859_1"); //测试: response.sendRedirect("index.jsp"); /*解决中文插入数据库乱码问题 * 将提交的jsp(register.jsp)的<% request.setCharacterEncoding("ISO8859_1");%> * 在servlet中同添加request.setCharacterEncoding("ISO8859_1"); * 在得到的中文String后,进行xxx=new String(xxx.getBytes("ISO8859_1"),"gb2312");处理 */ String name = request.getParameter("name"); name=new String(name.getBytes("ISO8859_1"),"gb2312"); String num1 = request.getParameter("num1"); String num2 = request.getParameter("num2"); //为了区别关键字class-->klass String klass = request.getParameter("class"); String post = request.getParameter("post"); post=new String(post.getBytes("ISO8859_1"),"gb2312"); String partynum = request.getParameter("partynum"); partynum=new String(partynum.getBytes("ISO8859_1"),"gb2312"); //测试:System.out.println(partynum); String both = request.getParameter("both"); String school = request.getParameter("school"); String graduate = request.getParameter("graduate"); String dorm = request.getParameter("dorm"); if (num1.equals(num2)) { StuDao stu = new StuDao(); if (stu.findStu(name, num1) != null) { // response.sendRedirect("index.jsp"); System.err.println("用户已存在!"); request.getRequestDispatcher("adderror.jsp").forward(request, response); } else { md5 md =new md5(); num1 = md5.string2MD5(num1); //測試是否加密成功System.out.println(num1); int i = stu.addStu(name, num1,klass,post,partynum,both,school,graduate,dorm); if (i < 0) { request.getRequestDispatcher("adderror.jsp").forward( request, response); } else { response.sendRedirect("index.jsp"); } } } else { System.out.println("密码不一致"); request.getRequestDispatcher("adderror.jsp").forward(request, response); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
相关文章推荐
- 遇到问题-用StreamReader读取数据时出现乱码,streamwriter写入中文时出现乱码
- Java获取PostgreSQL数据库中文数据乱码问题
- PHP 从数据库Mysql中读取数据生成excel(解决乱码问题,解决中文变问号问题)
- 解决方法:ASP读取数据库中的中文数据出现乱码的问题
- oreacle数据库为utf8,但是plsql还是插入数据中文乱码问题
- informix数据库在DbVisualizer中数据中文乱码问题
- WEB开发保存数据中文乱码问题
- java 实现Excel数据导入数据库时,中文乱码问题
- jsp+mysql中遇到中文写入数据库乱码问题
- mysql写入数据库后,数据出现乱码问题的解决方案
- 中文数据写入MySql乱码问题
- struts向数据库插入中文数据乱码问题
- 解决数据库录入中文数据乱码问题
- PHP写入数据库中文乱码问题
- 解决前台jsp页面提交中文数据以后,数据库中乱码问题??
- mysql 写入数据库中文变??乱码问题
- 解决PHP写入、读取MYSQL数据库数据中文乱码问题
- python 链接 ORACLE 数据库,并打印数据.解决中文乱码问题
- 解决中文数据存入数据库乱码, 页面乱码等问题
- 解决Oracle数据库里的中文数据显示乱码的问题,修改数据库的字符集。