0

可能重复:
Firefox 中的 UTF-8 问题 - 响应标头覆盖元标记?

我有一个 jPlayer 播放列表,可以在除 Firefox 之外的所有浏览器中正常工作。

问题在于非标准字符,即带有重音符号或亚洲字符的字符。我已经设置了一个演示播放列表,您可以在这里看到。

当我以 UTF-8 格式输入字符(播放列表中的第 1 轨)时,它们适用于除 Firefox 之外的所有浏览器,当我以 ISO Latin 1 (播放列表中的第 2 轨)输入它们时,它们适用于 Firefox,但没有其他浏览器.

因此,例如在 Firefox 中大å°æ¸æ¿.mp3有效,而在 Firefox大地書房.mp3中无效。

当我大地書房.mp3在 Firebug 控制台中使用时,我看到以下错误:

“网络错误:404 未找到 - http://monthlymixup.com/mixups/july_2012/media/simon/03%20??.mp3

所以,由于某种原因大地書房.mp3变成了 %20????。当我检查页面时,音频文件的链接显示为大地書房.mp3好像。

演示页面上有一个 UTF-8 的元标记,即<meta charset=utf-8 />

我的理解是,如果 FF 中没有设置默认编码,Firefox 会用响应头覆盖它。但是,我已将 UTF-8 设置为默认编码器,并通过转到工具/页面信息检查页面是否使用 UTF-8(我在 Mac 上,我相信这是检查编码的方法页)。

所以,我不知道发生了什么,很高兴得到一些帮助。

4

1 回答 1

0

这似乎是 jQuery 或其他使用的软件中的编码问题。条目 2 的格式很奇怪:我看到源代码为 UTF-8

mp3:"media/nick/Guessi-Guéré-Guessi (Pop Bariba).mp3"

这意味着字母“é”已在 UTF-8 中表示为两个八位字节,然后这些八位字节被解释为好像它们是 ISO-8859-1 编码的,并且生成的字符已被 UTF-8 编码。据推测,该软件通过执行相反的双重解码来处理混乱。在任何情况下,它都不适用于

mp3:"media/simon/03 大地書房.mp3"

这只是 UTF-8 编码的。

它让我很困惑它是如何在任何浏览器上工作的,但大概代码是依赖于浏览器的。

如果可能,应更改软件以处理 UTF-8 并转发它。所有现代浏览器,包括 Firefox,都可以正确处理它。

不过,作为一种快速解决方法,您可以尝试使用百分比编码形式(参见例如在线百分比编码器):

mp3: "media/simon/03%20%E5%A4%A7%E5%9C%B0%E6%9B%B8%E6%88%BF.mp3"

但这只是猜测;软件可能会对此进行处理,对“%”符号进行百分比编码。

于 2012-07-25T19:54:23.963 回答