java web学习过程中偶遇的中文乱码问题
初学java web开发,在学习过程中遇到了一个中文乱码问题,开始使用的是解压版的mysql,经过数据库的重装问题仍没有解决。经过代码一句一句的排查,最终得到解决,但仍不清楚解决的原理(求大神解释)。对于初学者遇到问题时一定要冷静对待,祝我们好运!~^v^~
1.将数据从servlet写入数据库时乱码问题
(1)将servlet与mysql数据库的编码方式均调为UTF-8的编码方式。
(2)从html获取数据时做一个Latin到UTF-8的转换。
Strng name=request.getParameter("username");
name=name==null?"":new String(name.getBytes("ISO8859_1"), "UTF-8");
可以解决数据写入数据库的乱码问题
2.从数据库中取出数据显示到html页面时乱码
(1)从mysql数据库中取出内容显示到html页面上时所有中文字符均乱码,包括标题及html页面本身的中文字符均变为"???"
出现此种错误的代码:
try( PrintWriter out = response.getWriter()) {
......
}catch(Exception e){
......
}
解决方法:
将try后括号中的内容去掉即可,变为:
try{
......
}catch(Exception e){
......
}
备注:
使用环境: IDE:NetBeans8.1
服务器:tomcat 8
数据库:mysql 5.6