在用jsp实现在线听歌时,文件名和文件路径中不能出现中文的问题,应该如何解决?

heroboy0923 2007-06-06 11:45:42
本人刚开始学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" %>依然不行
...全文
221 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
gongyali2005 2007-06-06
  • 打赏
  • 举报
回复
URL编码
wdman 2007-06-06
  • 打赏
  • 举报
回复
用这个函数把你的文件名处理一下,第一个参数用你的文件名,第二个就用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 ;
}

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧