关于对特殊字符的转义问题
大家好,今天遇到一个问题,没有找到好的解决方法,就是特殊字符的转义;
情况如下:jsp
<%@ page language="java" contentType="text/html; charset=GBK"
pageEncoding="GBK"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<script type="text/javascript">
function tt(t){
var url = '<%=request.getContextPath()%>/TestApecCharServlet?name=李&&code=AA+';
t.href=encodeURI(url);
}
</script>
<a href="javascript:void(0);" onclick="tt(this)">test转移特殊符号</a>
</body>
</html>
下面是servlet
package com.lc.test;
import java.io.IOException;
import java.net.URLDecoder;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class TestApecCharServlet
*/
public class TestApecCharServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* Default constructor.
*/
public TestApecCharServlet() {
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
this.doPost(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("GBK");
String name = request.getParameter("name");
name=new String (name.getBytes("ISO8859-1"),"UTF-8");
name = URLDecoder.decode(name, "UTF-8");
String code = request.getParameter("code");
code=new String (code.getBytes("ISO8859-1"),"UTF-8");
code = URLDecoder.decode(code, "UTF-8");
System.out.println("------------name----------------:"+name);
System.out.println("------------name----------------:"+code);
}
}
在JSp一面传入参数 code=AA+ 但是在servlet即是AA 了,有什么处理这样的好办法啊?