Tomcat中文乱码问题

Java Web

情况1:中文无法显示

    在文件头上的字符集设置为中文字符集

     1)<% @ page language="java" contentType="text/html"; charset="gb2312"&>

     2)<% @ page language="java" pageEncoding="gb2312"%>

情况2:提交过程中显示论码

    比如在一个查询界面,输入中文人名,在显示界面显示的中文人名是乱码。

    因为人名要提交给服务器,服务器将其人称ISO-8859-1编码,而网页上显示的是GB2312编码,不能兼容。

    1)将其转换成GB2312格式

1 <%
2       String stuname = request.getParameter("stuname");
3       stuname = new String(stuname.getBytes("ISO-8859-1"), "gb2312");
4       ...
5 %>
6 ...

     该方法需要将每一个字符串进行转码,很麻烦。    

   2)直接修改request的编码

<%
      request.setCharacterEncoding("gb2312");
      String stuname = request.getParameter("stuname");
      ...
%>
...

      该方法要在取出值之前就设置request编码,并且表单的提交方式应该为post(?)。但是,这种方法必须在每个页面中进行request的编码设置,也很麻烦。

     3)利用过滤器

      可以对整个Web应用进行统一的编码过滤,方便。

原文地址:https://www.cnblogs.com/bolumiere/p/6924738.html