最近帮别人解决问题时遇到个奇怪的问题,就是中文超链接乱码,在servlet中用iso8859-1去解码能正确显示,比方这个<a href="${pageContext.request.contextPath}/testServlet?t=测试">test</a>,那么在servlet中的t直接输出就是乱码,必须new String(t.getBytes("ISO8859-1"),"UTF-8")才能正确显示,可是我的JSP页面中的contentType和pageEncoding都已经设置了UTF-8编码,<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
servlet中我写的是response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
不知道为什么他还会用ISO8859-1去编码?
URL 中的中文必须用 URLEncode 先 encode 一下,然后再服务器端要做转码
request.setCharacterEncoding("UTF-8") 只对 POST 请求有效,GET 请求无效