日期:2014-05-20  浏览次数:20710 次

jsp不能写入Mysql
我用jsp连接Mysql数据库
读出来的是乱码
在Mysql操作台中看到的也是乱码

根据网上资料
我修改my.ini的编码为GBK
在Mysql中的连接校对,表和字段都设置为gbk_chinese_ci,

在连接驱动也加入GBK,
如:sConnStr = "jdbc:mysql://localhost:3306/testhospital?useUnicode=true&characterEncoding=GBK";

读取出来也加入编码转换
如:String content=rs.getString("Art_Content");
  String content1=new String(content.getBytes("gbk"),"ISO-8859-1");
当然page页面也设为gbk了

但是
我读取还是乱码!!

还有
我向数据库中添加新内容也写不进去!!!!!!

但我在mysql操作台中写的就可以读出来

郁闷
这什么问题
网上找了一大堆资料
还是没解决
5555555~~~~~~~~~~~

------解决方案--------------------
另外那个转换好象是这么写的: 
String a=new String(request.getParameter("Submit").getBytes("iso-8859-1"),"utf-8");
------解决方案--------------------
my.ini
要修改两处.

把JSP 也设置成相同的编码!

String a=new String(request.getParameter("Submit").getBytes("iso-8859-1"),"utf-8");//这个转码不要.,直接SAVE就可以.
------解决方案--------------------
你把url中的?useUnicode=true&characterEncoding=GBK去掉,然后在jsp中的page标签中加个pageEncoding="utf-8".接在修改tomcat下的server.xml文件:在<connector port="8080" protocal="HTTP/1.1" ... 后加一句:URIEncoding="UTF-8" />
------解决方案--------------------
这个问题主要是在于你必须知道是在插入的时候是乱子码还是在读取的时候是乱吗,这样才好解决问题。。。
另外给你一个强制转换的代码对任何的乱码问题都实用:
new String(request.getAttribute("要得到的值名称").toString().getBytes("ISO-8859-1"),"GBK");