首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

Servlet+JDBC+MySQL乱码,该怎么解决

2012-04-19 
Servlet+JDBC+MySQL乱码通过Get方式提交参数,url:http://localhost:8080/Minisite/light?nickaaa&mobil

Servlet+JDBC+MySQL乱码
通过Get方式提交参数,url:
http://localhost:8080/Minisite/light?nick="aaa"&mobile=""&prov="江西"&city="景德镇"&game="对对碰"

Servlet里面的doGet代码:

Java code
String nick = new String(req.getParameter("nick").getBytes("ISO-8859-1"),"UTF-8");        String mobile = new String(req.getParameter("mobile").getBytes("ISO-8859-1"),"UTF-8");        String prov = new String(req.getParameter("prov").getBytes("ISO-8859-1"),"UTF-8");        String city = new String(req.getParameter("city").getBytes("ISO-8859-1"),"UTF-8");        String game = new String(req.getParameter("game").getBytes("ISO-8859-1"),"UTF-8");        LightMap lm = new LightMap();        lm.insertLightRecord(nick, prov, city, game, mobile);

数据库采用的是utf8编码。
如果将Servlet的doGet代码改成
Java code
String mobile = new String(req.getParameter("mobile").getBytes("ISO-8859-1"),"GBK");

那么这个字段中文就不会乱码
请问哪位能帮帮我。在线等。谢谢!(新手,如果可以的话能不能讲的稍微详细一点)

[解决办法]
第一:调试查看从url得到的中文数据是否是乱码。注意tomcat的request提取方法,并不是所有servlet容器都这样子处理!
第二:查看数据库jdbc的url字符串是否指定了正确的编码
[解决办法]
http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
MySQL 中文显示乱码
[解决办法]
你用的是tomcat吗?在conf目录下的server.xml文件中的connector节点加上URIEncoding="gbk"
[解决办法]
String mobile = new String(req.getParameter("mobile").getBytes("ISO-8859-1"),"GBK");

你这里不是转换成GBK就不乱码了么

热点排行