在Java Web 开发的过程中经常会遇到服务器给客户端的文字出现乱码的现象。下面来讨论下这个现象。
常见的字符编码:
1.iso-8859-1(主要是拉丁字母,不支持中文)
2.gb2312,gbk,gb18030(系统默认码,中国的国标码)
3.utf-8(万国码,支持全世界的字符,推荐使用)
出现乱码的原因:
服务器的编码默认是iso-8859-1(Tomcat 7,Tomcat 8是utf-8),而这种编码不支持中文。浏览器的编码一般是gbk,所以浏览器就会出现乱码的现象。
解决:
把服务器发送给客户端的数据的编码改为utf-8,浏览器以utf-8的形式解释相应文本。
实例:
response.setCharacterEncoding("utf-8");
response.setHeader("Content-Type", "text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.print("<html>您好!!!</html>");
结果如下:
或者:
response.setCharacterEncoding("utf-8");
response.setHeader("Content-Type", "text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.print("<html>您好!!!</html>");
或者直接使用setContentType()的方法,
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.print("<html>您好!!!</html>");
这样中文乱码的问题就解决了!!!