<a href="javascript:void(0)" onClick="window.open('identityVirtualLoading.jsp?ivInfo.virtualCode=${v.virtualCode }&ivInfo.serviceType=${v.serviceType}&ivInfo.type=2');">查看</a>本页面字符编码是UTF-8  <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
identityVirtualLoading.jsp获取参数如下:<form action="search/virtualTrail!result" name="jumpForm">
  <input name="vtrailInfo.virtualCode" type="hidden" value="<%=request.getParameter("vtrailInfo.virtualCode") %>">
  <input name="vtrailInfo.serviceType" type="hidden" value="<%=request.getParameter("vtrailInfo.serviceType") %>">
  <input name="vtrailInfo.svType" type="hidden" value="1">
  <input name="vtrailInfo.bufferValue" type="hidden" value="1">
  <input name="vtrailInfo.action" type="hidden" value="jump">
</form>vtrailInfo.virtualCode参数里面有中文就会乱码。
整个项目中js跳转的路径都会出现乱码,用form表单提交就没问题。

解决方案 »

  1.   

    <a href="javascript:void(0)" onClick="window.open('identityVirtualLoading.jsp?ivInfo.virtualCode=${v.virtualCode }&ivInfo.serviceType=${v.serviceType}&ivInfo.type=2');">查看</a>
    中,先把数据用js的encodeURIComponent编码。<input name="vtrailInfo.virtualCode" type="hidden" value="<%=request.getParameter("vtrailInfo.virtualCode") %>">,在把获取的数据用URLDecoder的decode方法解码。
    试试。
      

  2.   

    和 js 无关. 看web服务器是否支持get方式提交中文.换成表单提交保证没有问题. url传参如果是tomcat是不支持中文的.可以在tomcat里加上允许get方式传中文.具体方法搜百度
      

  3.   

    先转换成编码,传到后端再转换回来。
    比如 百度搜索“日历”http://www.baidu.com/s?wd=%C8%D5%C0%FA%C8%D5%C0%FA就是日历两个字
      

  4.   

    这个问题,是你的js源文件在服务器上面就不一样,如果你的js文件在服务器上面是gbk,而你的网页时utf-8,并且你的js里面有中文,那你就头疼了,客户端不乱码才怪。只要把js的源文件,用记事本打开,然后另存为utf-8后覆盖原来的js文件就ok啦。