关于项目中中文乱码问题 1.乱码经常出现在什么位置?
-数据"传递"过程中的乱码
-数据"展示"过程中的乱码
-数据"保存"过程中的乱码
2.数据保存过程中的乱码? -最终保存到数据库中的时候,数据出现乱码。 -导致数据保存过程中的乱码包括以下两种情况。
1.-数据在保存之前本身就是乱码,保存到数据库表中的时候一定是乱码?2.-数据保存之前不是乱码,但由于本身数据库不支持简体中文,保存之后出现乱码。
3.数据展示过程中的乱码?
-最终显示到网页上的数据出现中文乱码。
-经过Java程序之后,java程序负责向浏览器响应的时候,中文出现乱码,怎么解决?
*设置响应的内容类型,以及对应的字符编码方式。response.setContextType("text/html;charset=utf-8");
-没有经过执行java程序,直接访问Html界面,出现中文乱码,怎么解决?
<meta content="text/html" ;charset="utf-8"> 或者<meta charset="utf-8">
4.数据传递过程中的乱码。 -将数据从浏览器发送给服务器的时候,服务器接收到的数据是乱码。 解决数据传递过程中的乱码;
*第一种解决方案:万能方式,既能够解决post请求乱码,又能解决get请求乱码。
1.先将服务器中接收到的数据采用ISO-8859-1的方式解码,回归原始状态 再给定一种支持简体中文的编码方式
String dname= request.getParameter("dname"); //万能方式,post和get都可以使用
byte[] bytes=dname.getBytes("ISO-8859-1"); //解码
System.out.println(dname); }
*第二种解决方案:【只支持post请求,因为这种】
调用request的setCharacterEncoding方法,但是这种方式只适合post请求,只对请求体编码
request.setCharacterEncoding("UTF-8");
以上代码必须在从request中获取任何数据之前设置有效果。
String dname=request.getParameter("dname");
System.out.println(dname);
*第三种方案: 专门解决get请求的乱码问题,因为这种方式只对请求行编码
修改CATALINA_HOME/conf/server.xml文件
URIEncoding="UTF-8";