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应用进行统一的编码过滤,方便。