存入读出ACCESS数据库都是问号(乱码)的问题

alicezhong2003 2003-08-26 02:26:42
在存入ACCESS数据库中已经变成了乱码,读出的时候也是.刚搜索了以前的很多帖子,也都没能得到什么答案.我已经加上了<%@page contentType="text/html; charset=utf-8" import="java.sql.*,java.util.Date"%>
这句话了,注意如果我用GB2312的话,不光是从数据库取出的中文,就是页面上所有的中文都会乱码,所以我一直用utf-8.

在线等,希望好心人能帮助我
...全文
595 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
alicezhong2003 2003-08-27
  • 打赏
  • 举报
回复
好了好了
我把那句话放在了前边,然后把发现以前的乱码"????"变成了普通的乱码文字,好了一点,然后我又把GB2312变成了UTF-8就都成了,哈哈哈哈
谢谢
request.setCharacterEncoding("utf-8");//这句就是防止乱码的代码
d_selenite 2003-08-27
  • 打赏
  • 举报
回复
charset=GBK
cucuchen 2003-08-27
  • 打赏
  • 举报
回复
没有想到我发贴晚了,不过你也学到了东西,对吗?
cucuchen 2003-08-27
  • 打赏
  • 举报
回复
兄弟,你试试这样看行不行?

设置<%@ page contentType="text/html; charset=big5" %> 后,可显示big5汉字,但post到下一页面是,所传递的big5字符变成‘??’乱码。请问如何修改web.xml的设置或修改程序?
谢谢

谢谢大家,问题已解决。
加一行 request.setCharacterEncoding("Big5");
即可
alicezhong2003 2003-08-26
  • 打赏
  • 举报
回复
刚才查帖子,有人说用下边这句话,我该把这句话加在哪里那?
String s2=new String(s1.getBytes("8859_1"),"gb2312");
alicezhong2003 2003-08-26
  • 打赏
  • 举报
回复
以上的代码中我把它给加上了,出了一大堆错误
public String codeString(String s)
{ String str=s;
try{byte b[]=str.getBytes("ISO-8859-1");
str=new String(b);
return str;
}
catch(Exception e)
{ return str;
}
}
alicezhong2003 2003-08-26
  • 打赏
  • 举报
回复
我应该把这段代码加在哪里吗?以下是我的程序代码
<%@page contentType="text/html; charset=utf-8" import="java.sql.*,java.util.Date"%>
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:ClassDB");
Statement stmt=con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);

public String codeString(String s)
{ String str=s;
try{byte b[]=str.getBytes("ISO-8859-1");
str=new String(b);
return str;
}
catch(Exception e)
{ return str;
}
}

String RepID=request.getParameter("RepID");
Date Now=new Date();
String year=String.valueOf(Now.getYear()+1900);
String month=String.valueOf(Now.getMonth()+1);
String day=String.valueOf(Now.getDate());
String hour=String.valueOf(Now.getHours());
String minute=String.valueOf(Now.getMinutes());
String second=String.valueOf(Now.getSeconds());

String date=year + "/" + month + "/" + day;
String time=date + " " + hour + ":" + minute + ":" + second;
if(!RepID.equals("0"))
{
String strSQL="INSERT INTO Board " + "(Poster,PostTime,Title,Content,RepID) VALUES " + "('<A Href=\"mailto:"+ request.getParameter("E-Mail")+ "\">" + request.getParameter("Poster") + "</A>','" + date + "','" + request.getParameter("Title") + "','" + request.getParameter("Content") + "'," + RepID + ")";

stmt.executeUpdate(strSQL);
strSQL = "UPDATE Board SET RepNum = RepNum+1, " + "LastRep = '" + time + "', ConNum = ConNum + 1 WHERE ID= " + RepID;
stmt.executeUpdate(strSQL);
response.sendRedirect("content.jsp?ID="+ RepID + "&Reload=yes");
}
else
{
String strSQL="INSERT INTO Board(Poster,PostTime," + " Title,Content,RepID,RepNum,LastRep,ConNum) VALUES " + "('<A Href= \"mailto:"+ request.getParameter("E-Mail") + "\">" +
request.getParameter("Poster") + "</A>','" + date + "','" +
request.getParameter("Title") + "','" +
request.getParameter("Content") + "',0,0,'" + time + "',1)";

stmt.executeUpdate(strSQL);
response.sendRedirect("content.jsp?Reload=yes");
}
stmt.close();
con.close();
%>
hojay2001 2003-08-26
  • 打赏
  • 举报
回复
应用以下方法处理request得到的字符串以后,再存入数据库
public String codeString(String s)
{ String str=s;
try{byte b[]=str.getBytes("ISO-8859-1");
str=new String(b);
return str;
}
catch(Exception e)
{ return str;
}
}
alicezhong2003 2003-08-26
  • 打赏
  • 举报
回复
因为他容易就不回答吗

81,092

社区成员

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

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