请教mysql数据库中保存的问题

zsbs 2003-03-27 08:45:24
我使用的是mysql数据库,我的服务器是win2000,tomact

<%@ page contentType="text/html;charset=GB2312"%>
....
String tt=request.getParameter("tt");
tt=new String(tt.getBytes("ISO8859-1"),"GB2312");
....
SQL语句是
"insert into table1(fie) values('"+tt+"')";

变量tt的值是中文时,运行后,为什么只能保存为空记录,
如果变量tt的值是英文或者不使用
tt=new String(tt.getBytes("ISO8859-1"),"GB2312");
可以保存,但中文保存为乱码,我把这句sql代码在mysql控制台运行,能够正常保存


同样的代码,我在另一台win2000+tomact的电脑上能正常运行
而且有些应当要用new String(tt.getBytes("ISO8859-1"),"GB2312");
的地方,不使用这个函数也能正常显示和保存中文记录

我实在不明白这是为什么,请指教
...全文
77 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zsbs 2003-04-23
  • 打赏
  • 举报
回复
终于解决了,原因是mysql的jdbc高版本有bug,换用低版本就好了
zsbs 2003-03-28
  • 打赏
  • 举报
回复
我换用Access数据库,问题就解决了,不知道是什么原因,请帮我解释一下好吗?
boycer 2003-03-27
  • 打赏
  • 举报
回复
tt=new String(tt.getBytes("GBK"));
试试
nbycn 2003-03-27
  • 打赏
  • 举报
回复
似乎是这样的:

数据库的显示编码方式是iso8859-1,所以,你不用转码,直接存放,
看看结果对否?

你在控制台运行成功是因为,控制台的编码方式本来就是iso8859-1,
而页面的codepage是gb2312。


可能错了,我不能帮你式了,你自己式式ok?:)
nbycn 2003-03-27
  • 打赏
  • 举报
回复
原因是,tomcat也许帮你做了转码的工作,而你从新做了一次,所以出错了。
你可以看看tomcat,的work目录下有,将你写的jsp转换成servlet的文件,
你可以见到,在转换的过程中作了些什么。

我以前也遇到这些问题,后来干脆用resin,中文问题就解决了,resin会帮你在任何需要转码的
地方转码,我就可以不用getbyte()

:)
好运

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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