You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中播放路径含%的音频文件失败问题求助

解决包含%的音频文件播放问题

问题核心是URL对%的解析逻辑:浏览器会把URL中的%当作编码标识符,比如你写的%32会被自动解析成字符2,所以<audio src="test%320.mp3">实际请求的是test20.mp3,自然找不到原文件。

下面分两种场景给出解决方案:

静态HTML直接写标签

把文件名里的%手动替换成%25(这是%的URL编码值),比如原文件名是test%320.mp3,修改后的代码:

<audio src="test%25320.mp3" controls></audio>

动态JS生成src的场景

用encodeURIComponent对完整的原始文件名编码,不要对已经部分编码的字符串操作。示例代码:

// 原始文件名(和本地实际文件名完全一致的字符串)
const rawFileName = 'test%320.mp3';
// 对整个文件名进行URL编码
const encodedFileName = encodeURIComponent(rawFileName);
// 给audio标签设置处理后的src
document.querySelector('audio').src = encodedFileName;

编码后test%320.mp3会转换成test%25320.mp3,和手动修改的结果一致,浏览器就能正确识别文件名里的%了。

内容的提问来源于stack exchange,提问作者miranto randriamampianina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 11:39:53