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

在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