function find()
{
<%
String result =java.net.URLEncoder.encode("刘","UTF-8");
System.out.println(result);
%>
parent.listFrm.location="RUFindList.do?action=find&name=<%=result%>";
}
在请求的URL中有一些特殊的字符是保留字,如'+'、' '、'='及汉字(非ASCII字符),如果提交的参数中包括这些字符,需要进行URL编码。(具体的保留自列表可以参照http规范,最常使用到的也就是以上提到的几个)
编码的规范是一个字节变成%XX的格式,其中XX是此字符在ASCII码表中的16进制值,如'='在ASCII码表中为061,16进制即为3D,所以编码以后成为'%3D'。一个汉字由两个字节组成,编码以后的格式为%XX%XX,如'鲁迅'编码以后为'%C2%B3%D1%B8'。
此编码的过程可以使用java的java.net.URLEncoder.encode()方法实现。
如提交的条件是
searchword=author=鲁迅
将参数值'author=鲁迅'进行编码
java.net.URLEncoder.encode("author=鲁迅")
返回
author%3D%C2%B3%D1%B8
组成的条件就成为
searchword=author%3D%C2%B3%D1%B8