我的MySQL在命令窗口中 打插入命令能插入中文,但是用Java程序插入是就变成乱码了?我的MySQL中的文件my.ini中的default-character-set=gb2312;
我的连接是:conn = DriverManager.getConnection("jdbc:mysql://localhost/students?user=root&password=123321&useUnicode=true&characterEncoding=gb2312");
谁能帮我解决这个问题啊!!!!
我的连接是:conn = DriverManager.getConnection("jdbc:mysql://localhost/students?user=root&password=123321&useUnicode=true&characterEncoding=gb2312");
谁能帮我解决这个问题啊!!!!
struts乱码基本一般就是出现在页面显示,表单传值到ActionForm,从ActionForm中取值设置vo/po的属性,链接数据库,服务器内部以及数据库本身这几个过程。
页面显示用gbk/gb2312都没关系,但要统一(这里假设用gbk)
表单传值到ActionForm时把request的字符编码改成gbk(request.setCharacterEncoding("gbk"))
从ActionForm中取值设置vo/po的属性时用gbk来解码ActionForm中的值(xxx.setXxx(new String(form.getXxx().getBytes(), "gbk"));)
链接数据库时如果单单用Struts的,链接数据库的代码直接在DAO里面写的话那就用你的那个就行了,如果是在Hibernate里面配的话就要象竹老师那样做
至于服务器出乱码,就得用过滤器了,我用的是Tomcat服务器,它自己本身就有一个过滤器来,直接拿出来用就行了,注意记得要在web.xml配置一下过滤器
至于数据库本身,除了你已经做了的,你再把下面这几个设置一下就行了(这样稳点。。)
set character_set_client = gbk;
set character_set_connection = gbk;
set character_set_database = gbk;
set character_set_results = gbk;
set character_set_server = gbk;
做完上面的步骤,应该就没问题的了!