本人刚开始学jsp,试着做一个音乐网站,现在基本上快完成了,就是如题所说的问题不知道怎么解决,希望高手指点一下主要代码如下:<object classid=CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95 codebase=http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701 width="75%" height="70" align="middle" id="mediaplayer">
<param name="FileName" value="************************************">
<param name="AutoStart" value="true">
<param name="AutoRewind" value="-1">
<param name="AnimationAtStart" value="true">
<param name="ShowControls" value="true">
<param name="ClickToPlay" value="false">
<param name="EnableContextMenu" value="false">
<param name="EnablePositionControls" value="true">
<param name="Balance" value="0">
<param name="ShowStatusBar" value="true">
<param name="AutoSize" value="1">
</object>把***部分换成文件的绝对路径即可,但问题是路径中不能出现中文,比如
http://localhost:8080/web/11.mp3 就可以正常在线听歌
但如果是 http://localhost:8080/web/我很烦.mp3  就不行 
在文件前面加上<%@ page contentType="text/html; charset=GB2312" %>依然不行

解决方案 »

  1.   

    用这个函数把你的文件名处理一下,第一个参数用你的文件名,第二个就用GB2312
    试试看。public static String toUnicode(String strText,String code) throws UnsupportedEncodingException{ 
    char c; 
    String strRet = "" ; 
    int intAsc; 
    String strHex; 
    strText = new String(strText.getBytes(code),code); 
    for ( int i = 0; i < strText.length(); i++ ){ 
    c = strText.charAt(i); 
    intAsc = (int)c; 
    if(intAsc>128){ 
    strHex = Integer.toHexString(intAsc); 
    strRet = strRet + "&#x" + strHex+";"; 
    } else { 
    strRet = strRet + c; 


    return strRet ; 
    }