老大们帮帮忙吧,给乱码弄得头晕死*****期待解决过此问题的大大们告诉一个简单可行的方法

zhongjs 2005-08-15 03:35:21
最近不是很忙,自学点东西,结果用JDBC直接连接MYSQL时,出现了乱码,程序很简单,一个HTML提交到JSP页面,JSP页面中直接写代码处理,没用到MVC,也不是提交到Servlet

******************************

<%@ page import="java.sql.*"%>
<%@ page contentType="text/html;charset=GBK"%>
<HTML>
<HEAD>
<TITLE> statement </TITLE>
</HEAD>

<BODY>
<%
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;

request.setCharacterEncoding("GB2312");
/**/
String name=request.getParameter("name");
String password=request.getParameter("password");
%>
接收到的用户名为:<%= name%>,密码为:<%= password%>
<%
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=GBK", "root", "");
stmt=conn.createStatement();
String sql="insert into users values ('','"+name+"','"+password+"')";
stmt.executeUpdate(sql);
}catch(Exception sqle)
{
out.println("<br>sqle="+sqle);
}finally{
try{
if(null != stmt)
stmt.close();
if(conn!=null)
{
conn.close();
}
}catch(Exception sqle)
{
out.println("<br>close sqle="+sqle);
}
}
%>
</BODY>
</HTML>
******************************

现在提交到数据库的中文全是乱码,接收到的用户名为:<%= name%>,密码为:<%= password%> 也是乱码

GOOGLE了些文章,越搞越乱。

期待解决过此问题的大大们告诉一个简单可行的方法,谢了!
...全文
134 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhongjs 2005-08-15
  • 打赏
  • 举报
回复
最后用String name = new String(name.getBytes(“ISO-8859-1”),”GBK”);解决了,谢谢大家
simon0512 2005-08-15
  • 打赏
  • 举报
回复
ding
feyge 2005-08-15
  • 打赏
  • 举报
回复
碰到了这问题,而且也设置了字符集,愣是不行,头大

后来问同事,最后一招String name = new String(name.getBytes(“ISO-8859-1”),”GBK”);终于行了

JAVA这东西就是麻烦啊

网上的说法也是很多版本,不知信谁
layueer 2005-08-15
  • 打赏
  • 举报
回复
String name = new String()多试试几个
tunxizxh 2005-08-15
  • 打赏
  • 举报
回复
老兄,老师说的不一定都行,要自己实践,用 mes= new String(mes.getBytes("ISO-8859-1"),"GB2312");我的OK
  • 打赏
  • 举报
回复
我也碰上了,用的是楼上的方法,但是我的一个老师说在服务器上设置某个东西才是根本方法
比如TOMCAT的SEVER。XML里...但是我没找到....
kingfish 2005-08-15
  • 打赏
  • 举报
回复
转一下试试
String name = new String(name.getBytes(“ISO-8859-1”),”GBK”);
zhongjs 2005-08-15
  • 打赏
  • 举报
回复
楼上的老大:

1,输出name是乱码,而且我已经在JSP页面注明了<%@ page contentType="text/html;charset=GBK"%>及request.setCharacterEncoding("GB2312");

2,我曾经在MYSQL.INI里加入了字符集,指定为GB2312,问题仍然如此

请指教
kingfish 2005-08-15
  • 打赏
  • 举报
回复
1 输出name,看看编码是否正确,不正确则需要转换
2 如果1输出正确,那么检查mysql字符集是否正确

81,092

社区成员

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

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