请教传递参数出现乱码问题
传递参数中含有中文和英文,
在java.net.URLEncoder.encode()后传递参数时先传给javascript脚本,但在javascript脚本显示的参数时乱码,
所以在接收页java.net.URLDecoder.decode()出现的是乱码,应该怎么解决。
谢谢!!!页面代码:
out.print("<td align=middle><a href=javascript:openWindow('viewservices.jsp?CUSTOMER_ID="+customerid+"&DISPLAY_NAME="+java.net.URLEncoder.encode(rs.getString("DISPLAY_NAME").trim())+"');>查询</a> </td>");javascript脚本:
<script language="JavaScript">
<!--
function openWindow(url) {
window.open (url,'newwindow', 'height=660, width=660, top=0, left=0, toolbar=no, menubar=no, scrollbars=yes,resizable=no,location=no, status=no') ;
alert(url);
}
-->
</script>接收页代码:
String CUSTOMER_ID=request.getParameter("CUSTOMER_ID");
String DISPLAY_NAME=new String(java.net.URLDecoder.decode(request.getParameter("DISPLAY_NAME")).getBytes("ISO8859-1"),"gb2312");
即:上面的javascript中加入alert(url)查看时DISPLAY_NAME的值是出现乱码。
传递参数中含有中文和英文,
在java.net.URLEncoder.encode()后传递参数时先传给javascript脚本,但在javascript脚本显示的参数时乱码,
所以在接收页java.net.URLDecoder.decode()出现的是乱码,应该怎么解决。
谢谢!!!页面代码:
out.print("<td align=middle><a href=javascript:openWindow('viewservices.jsp?CUSTOMER_ID="+customerid+"&DISPLAY_NAME="+java.net.URLEncoder.encode(rs.getString("DISPLAY_NAME").trim())+"');>查询</a> </td>");javascript脚本:
<script language="JavaScript">
<!--
function openWindow(url) {
window.open (url,'newwindow', 'height=660, width=660, top=0, left=0, toolbar=no, menubar=no, scrollbars=yes,resizable=no,location=no, status=no') ;
alert(url);
}
-->
</script>接收页代码:
String CUSTOMER_ID=request.getParameter("CUSTOMER_ID");
String DISPLAY_NAME=new String(java.net.URLDecoder.decode(request.getParameter("DISPLAY_NAME")).getBytes("ISO8859-1"),"gb2312");
即:上面的javascript中加入alert(url)查看时DISPLAY_NAME的值是出现乱码。
然后在新页面中用unescape(字符串)解码。
然后通过javascrpit脚本的函数返回值赋值给java代码的变量。
{
String result=null;
byte temp [];
try{
temp=str.getBytes("ISO-8859-1");
result= new String(temp);
}
catch(UnsupportedEncodingException e)
{
System.out.println(e);
}
return result;
}
%>试下.
<%
request.setCharacterEncoding("gb2312");
%>
就可以了!基本上能解决数据的乱码问题!特别是对于数据库的写入操作!