0

Possible Duplicate:
UTF-8 issue in Firefox - response header overriding meta tag?UTF-8字符編碼在Firefox

不工作我有jPlayer播放列表中,除了火狐所有的瀏覽器工作正常。

問題在於非標準字符,即帶有重音或亞洲字符的字符。我已經設置了一個演示播放列表,以便您可以看到here

當我以UTF-8形式(播放列表中的曲目1)輸入字符時,它們可以在除Firefox以外的所有瀏覽器上工作,並且當我在ISO拉丁語1(播放列表中的曲目2)中輸入它們時,它們在Firefox但沒有其他瀏覽器。

所以,例如在Firefox 大å°æ¸æ¿.mp3的作品中,而大地書房.mp3沒有。

當我在Firebug控制檯我看到下面的錯誤使用大地書房.mp3

「NetworkError:404未找到 - http://monthlymixup.com/mixups/july_2012/media/simon/03%20????.mp3

所以,出於某種原因大地書房.mp3變爲20%????。當我檢查頁面時,音頻文件的鏈接顯示爲大地書房.mp3

沒有爲演示頁上的UTF-8元標記,即<meta charset=utf-8 />

我的理解是,如果一個默認的編碼是不是在FF設置火狐覆蓋這與響應頭。然而,我已經將UTF-8設置爲默認編碼器,並且通過轉至工具/頁面信息(我在Mac上並且我相信這是檢查編碼的方式)來檢查該頁面是否使用UTF-8。頁)。

因此,我對正在發生的事情感到不知所措,並會很樂意提供一些幫助。

+0

您能否指定如何在Firefox上重現問題?就像「去網址...並點擊...,然後......應該發生,但實際上......發生」。當我訪問http://monthlymixup.com/mixups/july_2012/demo.html時,我看不到任何問題。 – 2012-07-25 17:06:39

+0

@ JukkaK.Korpela在Firefox中,只有播放列表播放中的第二和第三首曲目(即第一首曲目不播放) – Nick 2012-07-25 18:08:33

+0

什麼是您的服務器? – 2012-07-25 18:14:13

回答

0

這似乎是jQuery或其他使用的軟件中的編碼問題。條目2是在奇數格式:查看源爲UTF-8,I看到

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

這意味着,字母「e」已經在UTF-8被表示,如兩個八位字節,然後將這些八位字節被解釋爲它們是ISO-8859-1編碼的,並且結果字符已經被UTF-8編碼。推測該軟件通過執行相反的雙重解碼來處理混亂。在任何情況下,它都不能與

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

這只是UTF-8編碼。

它令我困惑,它如何在任何瀏覽器上工作,但大概代碼是依賴於瀏覽器的。

如果可能的話,應該更改軟件來處理UTF-8,並將其傳遞給前端。所有現代瀏覽器,包括Firefox,都可以正確處理它。

作爲速戰速決,不過,你可能會嘗試使用百分比編碼表(見例如online percent-encoder):

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

但是,這只是一種猜測;該軟件可能會涉及這一點,百分比編碼「%」符號。

+0

謝謝。爲了清楚起見,「mp3:」media/nick/Guessi-Guéré-Guessi(Pop Bariba).mp3「'是我編寫的代碼,以表明它可以在Firefox中使用。 'Guéré'是'Guéré'的ISO-8859-1版本 – Nick 2012-07-25 20:49:56

+0

@尼克,不,在ISO-8859-1中,「é」是單字節。您只能通過首先編碼「é」的UTF-8來獲得「Ã」,然後將結果字節解釋爲字符。 – 2012-07-25 21:11:08