index.jsp里面写
    <form action="/web31/hanzi" method="get">
    <input type="textbox" name="text">
    <input type="submit">
对应的servlet, hanzi.java写:
request.setCharacterEncoding("gb2312"); 
response.setCharacterEncoding("gb2312");
 String k = request.getParameter("text");String    sql="INSERT INTO userinterest VALUES('"+k+"','"+k+"','"+k+"')";
  ResultSet rs = null;
try {
rs = stmt.executeQuery(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();

插入之后在数据库sql2005中看都是乱码。
如果index.jsp里面不做输入,直接写
request.setCharacterEncoding("gb2312"); 
response.setCharacterEncoding("gb2312");
 String k = request.getParameter("汉字");
那么可以成功地在数据库中看到选项。
但是我不能不做输入啊???怎么做才能用输入

解决方案 »

  1.   

    jsp编码是什么,修改JSP编码方式
      

  2.   

    <form action="/web31/hanzi" method="get"> 改成
    <form action="/web31/hanzi" method="post"> 试一下
      

  3.   

    用get方法提交表单当然有乱码了,用post就没有了。
    如果用get方法,请String k = new String(request.getParameter("text").getBytes("ISO-8859-1"), "gbk"); 
    应该就是这样了,如果不行String k = new String(request.getParameter("text").getBytes("ISO-885-1")); 
    试试看吧