让我们来看看这个简单的 HTML:
<html>
<body>
<!-- Object Tag For the Audio Player -->
<object id="mpAudio" width="100%" height="100%"
classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6"
type="application/x-oleobject" align="middle">
<param name="URL" value="http://servername/media/Alt.TÉst/default.wav" />
<param name="AutoStart" value="True" />
<param name="UIMode" value="Full" />
<param name="EnableContextMenu" value="True" />
<param name="WindowlessVideo" value="True" />
<param name="Mute" value="False" />
</object>
</html>
注意在 URL 中有这个 unicode 字符:É
当我打开该 html 文件时,音频播放为乱码。值得注意的是,在我拥有的一些较旧的 VM 中(用于随机 IE6 测试),它具有 2003 标准版的操作系统、IE 6 浏览器和 Windows Media Player 6.4.09.1130 .. 它工作正常,很好!我的测试是乱码,涉及 Windows 7、IE 10 和 WMP 12.0.7601.17514
我认为解决方案可能是对 URL 进行 % 编码。那更糟。编码变成:http%3A%2F%2Fservername%2Fmedia%2FAlt.T%C3%89st%2Fdefault.wav
而且我从至少可以玩乱码,到根本不玩任何东西。
另一项测试:
获取未编码的 url 并将其放入 Firefox,打开 wav(因此 Firefox 可以使用 unicode 字符)。获取编码的 url,我得到“找不到服务器”。我想我不知道如何编码!
除非消除用于数据输入的 unicode(这些 URL 是从用户名生成的,在某些语言环境中它们允许名称中包含 unicode 字符),我该如何进行这项工作?
谢谢。