要在页面1中向页面2传递歌曲名字,在页面2中实现播放功能。
在页面1中的传递方式为
<a href="DataMusic/bofang.jsp?bn=爱我久久">歌曲名</a>在页面2接受方式为
<% String str = new String(request.getParameter("bn").getBytes("ISO8859_1"),"gb2312");
   String fullStr = str + ".mp3";
   fullStr=java.net.URLEncoder.encode(fullStr);
   //fullStr = "DataMusic/"+fullStr;  
   %>两个页面编码方式都为gb2312,在运行过程中当bn传递过去的值,在str部分是正确的,播放链接显示的是乱码。
将fullStr=java.net.URLEncoder.encode(fullStr);注释掉以后,播放链接显示是正确的,但是还是不播放歌曲。当歌曲名为英文时,播放没问题。以前我记得改一下tomcat的配置就可以了,差了半天一直没查到,请大家指点一下。

解决方案 »

  1.   

    <Connector port="8080"               maxHttpHeaderSize="8192"
                   maxThreads="1000" minSpareThreads="400" maxSpareThreads="500"
                   enableLookups="false" redirectPort="8443" acceptCount="500"
                   connectionTimeout="20000" disableUploadTimeout="true" URIEncoding='GBK'/>URIEncoding='GBK'
    加上这句~
      

  2.   

    在页面2中设置下:
    request.setCharacterEncoding("GBK");
      

  3.   

    改成new String(request.getParameter("bn").getBytes("ISO-8859-1"),"gb2312");
    你试一下
      

  4.   

    filter  过滤器  试试