超链接和重定向 中文参数 问题

 <a href="CopyofMyJsp.jsp?name=哈哈">123</a>

地址栏会显示去中文

 http://localhost:8080/jstl02/CopyofMyJsp.jsp?name=哈哈

而用 重定向,若想正确传输中文参数,得通过转码,否则显示乱码。我知道 web默认传输 编码是iso8859-1编码,不支持中文编码,所以需要转码传输

 response.sendRedirect("CopyofMyJsp.jsp?name="+URLEncoder.encode("哈哈2"));
 地址栏显示:http://localhost:8080/jstl02/CopyofMyJsp.jsp?name=%E5%93%88%E5%93%882

这就不明白了,为什么一个可以显示中文,一个不可以呢。

你使用的什么浏览器?Chrome的话是可以显示中文,但复制的话就不是了。

因为有这个URLEncoder.encode()

jsp编码不能该用utf-8么?!

统一编码,地址栏处也有编码,例如你使用的是tomcat 服务器做开发,就去配置文件中设置 URIEncoding属性设置地址栏处的编码

<Connector port="8080" protocol="HTTP/1.1" 
           connectionTimeout="20000" **URIEncoding="UTF-8"**
           redirectPort="8443" />