中文插入mysql数据库中是??,看了以前的很多帖子,还是没有解决-_-!

null222 2003-10-16 10:20:40
jsp页面是<%@ page contentType="text/html; charset=GB2312" %>
不管是username=new String(request.getParameter("username").getBytes("ISO8859-1"),"GB2312");
还是title=new String(request.getParameter("title").getBytes("ISO8859-1"))
在insert="insert into guest(username,title) values('"+username+"',"+title+"');";
语句插入执行后在数据库中都是??
我连接mysql的时候是useUnicode=true&characterEncoding=GB2312(如果不设的话db里的中文数据显示的时候就会是??)
请问大家这要怎么改呢?
...全文
56 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
realby 2003-10-16
  • 打赏
  • 举报
回复
public static final String dburl = "jdbc:mysql://localhost/bitc?useUnicode=true&characterEncoding=gb2312&user=root&password=1";
这是我bean里的连接~~然后什么也不转化~叶面用~~~charset=GB2312
realby 2003-10-16
  • 打赏
  • 举报
回复
我在mysql就没用转换~~~~~
要是转换~最好做一个转换函数~~加在自己的插入更新函数中~~不用转换的话就屏蔽~~这样调试起来也方便~~多试试~肯定能通~不怪你怎么转~~一定要确定在库里的是中文不是乱麻~^_^
臧忠超 2003-10-16
  • 打赏
  • 举报
回复
你是如何连接数据库的,如果是用驱动的话,可能是驱动的问题,不要用最新的驱动,用mm.mysql-2.0.4-bin.jar
etre 2003-10-16
  • 打赏
  • 举报
回复
在连接的URL后面加下useUnicode=true&characterEncoding=gb2312,就可以了
凋零的老树 2003-10-16
  • 打赏
  • 举报
回复
mysql好象都不用转换
liad 2003-10-16
  • 打赏
  • 举报
回复
仔细看看
http://expert.csdn.net/Expert/topic/2343/2343828.xml?temp=.5359613

回复人: djws(void) ( ) 信誉:100 2003-10-11 17:28:59 得分:130



我刚解决了跟Sheepy(J.2.E.E)一样的问题,
首先写一个ISO->GB2312的转换函数
package myclass;
public class ISOtoGB2312{
public static String convert(String str){
try {
byte[] byteStr = str.getBytes("ISO-8859-1");
return new String(byteStr, "gb2312");
}
catch(Exception e) {
return str;
}
}

}
其次不要request.setCharacterEncoding("GB2312");
然后分两种情况
1.linux下
在得到传参时不要做转换
String str = request.getParameter("Name");
直接将其插入mysql
String cmd = "Insert into myusers set name = '"+str+"'";
stmt.executeUpdate(cmd);
需要显示时,做转换
<%=ISOtoGB2312.convert(str)%>
将数据从数据库读出时,做转换后显示
<%=ISOtoGB2312.convert(rs.getString("name"))%>
另,mysql编译源码时应使其支持中文./configure --with--charset=gb2312
2.win2k下
得到传参时要做转换
str = ISOtoGB2312.convert(request.getParameter("Name"));
再将其插入mysql
String cmd = "Insert into myusers set name = '"+str+"'";
显示时无须再转换
<%=str%>
将数据从数据库读出可直接显示
<%=rs.getString("name")%>
另,应在my.ini中加default-character-set=gbk使其支持中文





null222 2003-10-16
  • 打赏
  • 举报
回复
解决了,谢谢楼上的朋友们
我用的os是linux

我把useUnicode=true&characterEncoding=gb2312去掉
然后插入的时候直接插入,取出来的时候转成gb2312就可以了

81,092

社区成员

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

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