关于URL中包含“#”等符号的处理

程序如下:
String name="#20你好";
<a href="aaa.jsp?a=<%=name%>">aaa</a> //如果这里换成<javascript:window.open(URL)>会下页取不到值

//这样做URL肯定不可以识别,故作以下处理
String name2=java.net.URLEncoder.decode(rs.getString("Name");
<a href="aaa.jsp?a=<%=name2%>">aaa</a>

问题:在aaa.jsp页面取a的值有如下几种问题:
1。取不到值什么也没有
如果将href换成window.open取不到值
2.乱码
String name=request.getParameter("a");

Name=java.net.URLEncoder.encode(name); //用UTF-8,我的JDK1.2不支持,JDK1。4支持,不过没法方式

//Name =java.net.URLDecoder.decode("%E6%94%AF%E4%B8%9D%E5%85%89%E6%AF%9B%E5%B7%BE","UTF-8"); //decode也不行

//Name=java.net.URLDecoder.decode(name);

//byte[] temp2=name.getBytes("8859_1"); //换成GBK,和下面对调
//String Name1=new String(temp2, "GBK"); //换成8859_1,和上面对调
//String Name1 = new String(name.getBytes(),"iso-8859-1");
//String Name1 = new String(Name.getBytes(),"8859_1");
//以上两种方法都不行

String Name1 = new String(name.getBytes(),"GBK"); //这样也不行