编码方式我都改成了gbk,为什么mysql里中文还是乱码

火火132 2014-07-05 08:54:34
package A;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;



public class add extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {


PrintWriter out = response.getWriter();
Connection conn=null;
PreparedStatement st=null;
try {
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/qiche";
String user="root";
String password="123456";

conn=DriverManager.getConnection(url, user, password);
st=conn.prepareStatement("select * from info where leixing=?");

st.setString(1, request.getParameter("leixing"));
ResultSet rs=st.executeQuery();
if (rs.next()){
request.getRequestDispatcher("add.jsp").forward(request, response);
}
else
{
request.setCharacterEncoding("gbk");


st=conn.prepareStatement("insert into info values(?,?,?)");
request.setCharacterEncoding("gbk");
st.setString(1,request.getParameter("leixing"));
st.setString(2,request.getParameter("chepai"));
st.setString(3,request.getParameter("or"));
int m=st.executeUpdate();
if(m!=0){
request.getRequestDispatcher("tianjia.jsp").forward(request, response);
}
else{
request.getRequestDispatcher("add.jsp").forward(request, response);
}
}
}catch (Exception e){

System.out.println(e.getMessage());
e.printStackTrace();
}
}

private void mysql_query(String string) {
// TODO Auto-generated method stub

}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doGet(request, response);
}
}
...全文
457 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_33189603 2016-07-13
  • 打赏
  • 举报
回复
问题解决了吗
姜小白- 2014-07-06
  • 打赏
  • 举报
回复
引用 6 楼 u011244538 的回复:
好多方法都试过了,该统一的统一,该加的代码也加了~~就是不行啊~~~
具体是哪一步乱码的呢?
火火132 2014-07-06
  • 打赏
  • 举报
回复
好多方法都试过了,该统一的统一,该加的代码也加了~~就是不行啊~~~
姜小白- 2014-07-06
  • 打赏
  • 举报
回复
遇到问题不要慌乱。 打断点跟一下,看哪一步出现乱码的。 是从页面到后台就乱码了还是从后台到数据库乱码的? 如果页面到后台乱码,那就设置下页面的编码格式,同时设置下request.setCharacterEncoding("GBK"); 应该就可以了。 如果是后台到数据库乱码,就再检查数据库的编码格式。
yanghongjy 2014-07-06
  • 打赏
  • 举报
回复
new String("乱码".getBytes(), "gb2312"); 手打,大致是这样 你看看
willis_326 2014-07-06
  • 打赏
  • 举报
回复
你mysql的编码设置不是GBK吧 把mysql的编码设置为GBK,并且在存入数据库和取数据时都使用GBK格式,就不会有问题了。 不过我还是推荐你使用uft-8格式。
fancige 2014-07-05
  • 打赏
  • 举报
回复
编码你是在哪里改的?哪里都是乱码吗?还是只有某些地方是乱码?
疯癫行者 2014-07-05
  • 打赏
  • 举报
回复
在保证数据库里的内容不丢失的情况下,你用什么编码存进去的,就用什么编码取出来,就不会乱码。

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧