用request获取form标签乱码问题

  最近被一个form标签里面的乱码问题搞得死去活来,干了好多蠢事,最终发现其实解决问题的方法好简单。。。
  先讲讲本人的环境,我用的是tomcat9.0.0作为服务器,以chrom浏览器作为窗口来运行的程序。一开始我看书上说解决request编码问题的方法:
  

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

  仔细一看,这不就是把get回来的String对象来个来个重新编码变成一个新的String对象嘛。但是作为一个懒人+没有记忆力的人,你要我记住8859这四个数字是很困难很困难的。而且代码还那么长,一点都不符合懒人的审美观。于是秉着折腾的精神我想让request.getParameter();这个方法get回来就是一个utf-8编码的字符串,这样以后写程序就方便了。
  于是乎我在我先写了如下代码:
  

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Test6</title>
    <meta charset="utf-8"/>
</head>
<body>
<form name="form" method="post" action="deal.jsp">
    <input type="text" name="text"/>
    <input type="submit" value="提交"/>
</form>
<a href="deal.jsp?name=张三">测试一把乱码</a>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Deal</title>
</head>
<body>
<%
    String value=request.getParameter("name");
    String text=request.getParameter("text");
%>
<%=value%>
<%=text%>
</body>
</html>

  对比了一把发现,name是非乱码的,因此我就想到这可能是form标签本身的问题,于是乎我上网找了各种大法对form标签以及tomcat进行改造,甚至来了一下代码:

<form name="form" method="post" action="deal.jsp" onsubmit="document.charcet('UTF-8')" accept-charset="UTF-8">

  然而……并没有什么卵用。。。form里面该乱码的还是乱码,搞了好久终于找到了正确的解决方式,原来只要在html标签上面加上:
  

<% request.setCharacterEncoding("utf-8"); %>

  就可以了!!(是在下蠢了)这句话的作用是对客户端请求进行重新编码。把请求编码改为utf-8所以你就能直接接收到utf-8编码的消息了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值