javaweb 复习系列(三)

前面的博客讲了 Servlet 和 Jsp 的应用,而在我们真正做 javaWeb 应用的时候,肯定会遇到很多问题,中文乱码就是经常碰到而且不好解决的问题之一,常常得花费大量的时间去解决这个令人咬牙切齿的难题,所以就利用这篇博客来记录一下中文乱码问题解决的一般思路,好让自己以后遇到这个问题的时候可以游刃有余的解决而不至于浪费大量时间。

解决中文乱码的第一歩是我们得让 jsp 页面可以写中文。因为在 Eclipse 中 jsp 页面默认的编码方式是 ISO-8859-1,这种编码方式不支持中文,如果不改变编码方式,在 jsp 页面就无法写中文,所以第一步就是将 jsp 页面的编码方式改为 UTF-8,然后保证 contentType 和 pageEncoding 的编码方式一致,通常 jsp 页面的格式如下:

<%@ page language="java" <span style="color:#ff0000;">contentType</span>="text/html; charset=UTF-8"
	<span style="color:#ff0000;">pageEncoding</span>="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
解决中文乱码的第二步是解决中文参数在传输过程中的乱码情况。例如表单提交中的中文等,参数在传输过程中默认采用的编码方式也是 ISO-8859-1,所以也不能编码中文。对于 Get 和 Post 请求,两种提交方式的中文乱码解决方案不一样。

对于 Post 请求,只要在获取请求信息之前,调用 request.setCharacterEncoding("UTF-8"); 即可,但是对于 Get 请求,这种方法不起作用,但是我们知道默认传输编码方式为 ISO-8859-1,那我们就可以在传输的时候先使用 ISO-8859-1 方式解码,再使用 UTF-8 方式来编码就可保证中文不乱码。如需要传输 value 这个字段,可以采用如下方法:

String val = request.getParameter("value");
String value = new String(val.getBytes("io-8859-1"),"utf-8");

还有一种办法,就是需要修改 Tomcat 的 server.xml 文件来解决。找到 conf/server.xml 文件,在 connector 节点上添加 useBodyEncodingForUrI="true" 属性即可。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值