在JSP中用到JDBC向数据库插入一条记录。为什么中文的变乱码。
<%@page contentType="text/html;charset=gb2312" language="java" import="java.sql.*"%>
<%@ page import="java.util.*" %>
<HTML>
<BODY>
<%
String Name=request.getParameter("username");
String Password=request.getParameter("password");
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
Connection con=java.sql.DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","");
Statement stmt=con.createStatement();
stmt.execute("insert into usertable(u,p,a) values('张三','2345','34 ')");
stmt.close();
con.close();
%>
</BODY>
</HTML>
到数据库中就变成乱码请大侠帮看看好吗?
问题点数:0、回复次数:11Top
1 楼loveknife(烟灰)回复于 2005-04-04 17:27:00 得分 0
String Name=new String(request.getParameter("username").getBytes("GB2312"),"iso-8859-1");
好象是这么写的吧,改成这样试一下
Top
2 楼loveknife(烟灰)回复于 2005-04-04 17:28:51 得分 0
对了,要确保Name!=nullTop
3 楼hlsps(小鱼)回复于 2005-04-04 17:52:33 得分 0
request.setCharacterEncoding("gb2312");Top
4 楼jerry_yifei(jerry)回复于 2005-04-04 18:29:03 得分 0
应该是编码的问题 ,改~~~~~~~~~~~Top
5 楼zhutouzip(醒了的鸟)回复于 2005-04-04 18:39:27 得分 0
jdbc:mysql://localhost:3306/test改成这样:jdbc:mysql://localhost:3306/test?characterEncoding=gb2312看看!Top
6 楼xiaohuozhi()回复于 2005-04-04 19:37:44 得分 0
在你还没有做任何动作前加个!request.setCharacterEncoding("gb2312");
Top
7 楼AllanJD(爱情盲,程序痴)回复于 2005-04-04 20:35:00 得分 0
request.setCharacterEncoding("gb2312");Top
8 楼tianxin1982225(来碗面!!!)回复于 2005-04-05 06:13:09 得分 0
<%@page contentType="text/html;charset="gb2312" language="java"
这句是提交显示的文挡框前的字,而你必须还得加一句:
request.setCharacterEncoding("gb2312");这是提交到服务器上的编译格式
我建议你把gb2312改成GBKTop
9 楼joincsdn(云)回复于 2005-04-05 08:20:50 得分 0
编码问题啊!!
五楼的方法应该能搞定!!
有时候要针对不同的数据库进行不同的编码转换的!Top
10 楼wmzsl(王明哲)回复于 2005-04-05 08:43:46 得分 0
用filter这样才是最好的解决办法Top
11 楼rizy()回复于 2005-04-06 10:42:51 得分 0
谢谢大家!我已经解决了!Top




