0

重複の可能性:
Firefox での UTF-8 の問題 - 応答ヘッダーがメタ タグをオーバーライドしますか?

Firefox を除くすべてのブラウザーで正常に動作する jPlayer プレイリストがあります。

問題は、非標準文字、つまりアクセント付きの文字またはアジア文字です。ここで見られるように、デモ プレイリストをセットアップしました。

文字を UTF-8 形式 (プレイリストのトラック 1) で入力すると、Firefox を除くすべてのブラウザーで機能し、ISO Latin 1 (プレイリストのトラック 2) で入力すると、Firefox では機能しますが、他のブラウザーでは機能しません。 .

たとえば、Firefox では大å°æ¸æ¿.mp3動作しますが、動作大地書房.mp3しません。

Firebug コンソールで使用する大地書房.mp3と、次のエラーが表示されます。

"NetworkError: 404 Not Found - 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 で 2 つのオクテットとして表され、これらのオクテットが 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"

しかし、これは単なる推測です。ソフトウェアは、「%」記号をパーセントでエンコードして、これを改変する可能性があります。

于 2012-07-25T19:54:23.963 に答える