为什么更新后的数据库中文是乱码

yxqc 2004-10-15 03:47:30
我的数据是从mysql表里取出来的,取出来的数据是正常显示中文的。
可为什么更新后的数据库中文是乱码呢?
我把my.ini也改过了。可是还是不行啊。
C:\WINNT>type my.ini
[mysqld]
basedir=D:/mysql
datadir=D:/mysql/data
default-character-set= gbk

我的代码如下:

//取得参数:
String newsname = request.getParameter("newsname");
String newstitle = request.getParameter("newstitle");
String newscontent = request.getParameter("newscontent");

//编码转化
newsname = new String(newsname.getBytes("GB2312"));
newstitle = new String(newstitle.getBytes("GB2312"));
newscontent = new String(newscontent.getBytes("GB2312"));

try
{
con=getConnection();
stmt=con.createStatement();
String sql="update news set newsname ='"+newsname+"', newstitle = '"+newstitle+" ', newscontent = '"+newscontent+"'where Id ="+ii;
stmt.executeUpdate(sql);
closeAll(rs, stmt, con);
}
catch(SQLException e)
{
System.out.println(e.getMessage());
}

%>

...全文
67 点赞 收藏 7
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dlinyo 2004-10-15
galewithwing(漂流的风)说的对。

newsname = new String(newsname.getBytes("GB2312"));
newstitle = new String(newstitle.getBytes("GB2312"));
newscontent = new String(newscontent.getBytes("GB2312"));
不需要
回复
galewithwing 2004-10-15
那就是你更新部分程序的问题啦!
你的修改表单提交页面 在获取参数前用上一句:request.setCharacterEncoding("gb2312");
就好了
回复
jerrymousenet2 2004-10-15
存入数据库之前,先转成UTF-8后,再存入数据库中。从数据库中,取出后再经过转换一下,即可正常。
回复
yxqc 2004-10-15
当往数据库添加新的数据是好的。但是把数据从数据库里取出来更新之后就是乱码了。为什么会这样?
回复
galewithwing 2004-10-15
问题是你怎么导入数据的?
如果通过程序到是很可能的
回复
ejbcreate 2004-10-15
At the first line, try to add this sentence:

request.setCharacterEncoding("GB2312");
回复
dropship 2004-10-15
有一个问题你要搞清楚,数据库中的中文是乱码吗?
回复
发动态
发帖子
Web 开发
创建于2007-09-28

7.9w+

社区成员

Java Web 开发
申请成为版主
社区公告
暂无公告