javaEE jsp 中文乱码问题

如果使用Tomcat服务器,在提交过程中,经常会出现中文乱码问题。乱码问题分为两个方面:

1.中文无法显示

有些JSP中,中文根本无法显示。通常的原因是没有把文件头的字符集设置为中文字符集。一定要保证文件头上写明:

<%@ page language="java" contentType="text/html;charset=gb2312"%>
或者
<%@ page language="java" pageEncoding="gb2312"%>

2.提交过程中显示乱码

前台提交给服务器时,服务器将其认为ISO-8859-1编码,而网页显示的是GB2312编码,不能兼容。有三种方法解决这个问题:

(1)将其转成GB2312格式。方法如下:

...
<%
	String username = request.getParameter("username");
	username = new String(username.getBytes("ISO-8859-1"),"gb2312");
	...
%>
...

但是此种方式必须对每一个字符串进行转码,很麻烦。

(2)直接修改request的编码

可以将request的编码修改为支持中文的编码,这样,整个页面中的请求,都可以自动转为中文。方法如下:

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

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

(3)利用过滤器

利用过滤器,可以对整个web应用进行统一的编码过滤,比较方便。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值