URL中文乱码问题

URL中文乱码问题


一:在JSP页面中:

1、首先把所有页面的编码格式设置为UTF-8:<%@ page contentType="text/html; charset=UTF-8" %>

2、使用URLEncoder和URLDecoder对URL进行编码和解码来解决中文乱码

URLEncoder.encode(name,"UTF-8")  //编码

URLDecoder.decode(name,"UTF-8")  //解码

详细介绍:java中的URLEncoder和URLDecoder类


详细过程:

URL在传递过程中是不允许有中文和一些特殊字符(%,#等)的,所以在传递之前需要对URL进行编码。

这样是不是够了呢?答案是不够的! 因为URL在传给服务器的过程中,服务器会自动对URL解码一次,这样仍然会报错。所以需要对URL编码两次:

java.net.URLEncoder.encodejava.net.URLEncoder.encode("小明","UTF-8"))%>

然后在服务器端对URL解码两次来获取:

String name=request.getParameter("name");

name=URLDecoder.decode(name,"UTF-8");  //只需解码一次,因为服务器自动解码一次


二:在js脚本中:

var url=........;
url=encodeURI(url);
url=encodeURI(url);
//最重要的部分,两次调用encodeURI ,就是编码两次


在跳转到url所在的类, 获取这个参数的方法如下:

String name=request.getParameter("name");
name=URLDecoder.decode(name,"UTF-8");

你可能感兴趣的:(JavaWeb笔记)