resp.sendRedirect()方法返回中文的问题

  首先庆祝一下自己开始准备想要写自己的博客,目前博客内容主要是写在JAVA学习中,自己遇到的问题与解决方案。希望可以与广大网友共同学习,共同进步。

  首先说明今天遇到的问题,在tomcat服务其中,它的编码采用了 “ISO-8859-1”  ,这个不支持中文,我们一般用中文的编码机都是采取“UTF-8”形式。那么,当我们想使用resp.sendRedirect()这个方法,反回中文的时候,我们需要怎么处理呢。在说明处理方法之前再提出一个小知识点。就是   这个方法怎么反回变量?

是这样反回的


String flag = "用户名密码错误!";
resp.sendRedirect("Login?flag="+flag);

按照格式可以看出来  


进入正题,首先我们应在把我们要反回的这个变量赋值,并让这个String 类型变量里面是用UTF-8存储的。然后反回这个变量,代码如下(题外话:这个操作实在我自己项目的接收页面):

String flag = "用户名密码错误!";
flag = java.net.URLEncoder.encode(flag.toString(),"UTF-8");
resp.sendRedirect("Login?flag="+flag);

这时候需要作什么?在反回页面也就是需要接受的页面

当然是将字符串按 iso-8859-1进行编码 然后再按UTF-8进行解码,这样就可以输出中文了,废话不说,上代码

当然这里面会有异常,大佬已经可以发现了,经过研究没有解决异常的可以参考我的其他博客,对这个有讲解


String flag2 = req.getParameter("flag");
String temp = null;
temp = new String(flag2.getBytes("ISO-8859-1"),"UTF-8");

这样测试结果就可以反回并且输出中文了!!


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值