response重定向的网址中有中文乱码的解决办法

本文介绍了一种在Servlet中处理中文URL乱码的方法,通过使用URLEncoder.encode()方法对中文字符串进行编码,确保了URL中的中文能正确显示并传递。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在servlet都是使用response对象来重定向到另一个页面:response.sendRedirect(“……”)。现在遇到一个问题,网页的地址是带中文的,当执行到跳转命令的时候项目运行出错,显示404,找不到页面,看异常信息,网页地址是一堆字母百分号数字的网页地址,显然编码集不同导致中文乱码,找不到一堆乱码地址的网页,想办法让这些中文正常显示传递,就是我们需要解决的问题,之前写过一个爬虫,在爬取网站链接的时候遇到过这个问题,很多的链接都是带中文的,利用了jdk提供的一个工具类URLEncoder(当初写爬虫的时候认真读了源码,并进行了改造,变成了适合自己项目的一个工具类,,有兴趣可以点击: Java爬虫爬取网站电影下载链接 ),可以对字符串进行编码,用户可以选择适合自己的编码集。

说了这么多,解决方法如下:

URLEncoder.encode(中文字符串,"utf-8");

例:response.sendRedirect(URLEncoder.encode(title,"utf-8")+".html");

response.sendRedirect(URLEncoder.encode("博客","utf-8")+".html");

title是一个中文标题,对title设置编码集utf-8,下面就可以跳到博客.html了

这样就可以解决跳转到的网址中的中文乱码问题了!!!

转载于:https://www.cnblogs.com/duzhentong/p/8576520.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值