初心者エラー:URIをUTF-8でエンコードします。

非常に単純ですが、それでも異常に奇妙で愚かなコメントのAjaxライブラリであるAjax Generic Comments Moduleを習得する過程で、私は興味深く非自明な効果に出会いました。 私のサイトの一部のユーザーのコメントは正しく表示され、他のユーザーのコメントはhabrasの形式で表示されました。 デフォルトのサイトエンコーディングはutf-8です。 しかし、一部のユーザーの投稿はcp1251に登場しました。 バグを再現しようとしましたが、システムにインストールされているどのブラウザでも実行できませんでした。 (Linux Debianがインストールされました-それは私の間違いでした。ブラウザ:Opera 9、FireFox、Konqueror。)有名なブラウザの1つだけでlibをテストせずに、最悪の恐怖が叶うことに気付きました。 Internet Explorer 6.0とeurekaを起動しました。 (LinuxでInternet Explorerを実行する方法があります-IEs4Linux







ご注意 URIのすべての非ラテン文字はUTF-8でエンコードする必要があります。 つまり リクエストが行われるURIはsaveComment.php?CommentText =%DD%FF%AA ...のようになります。



その結果、Internet Explorerを除くすべての一般的なブラウザーは、要求されたURLをutf-8で自動的にエンコードするという結論に達しました。 ロバの場合、XMLHttpRequest.open()を呼び出す直前にjavascript :: encodeURI(url)関数を使用します。 一般に、常に使用することをお勧めします。 :) ここで 、Unicodeに変換する他の関数について読むことができます






All Articles