これが取引です。MySQL で動作するチャットのようなアプリケーションを作成しようとしています。メッセージはデータベースに保存され、JSON で取得されます。
.getJSON を使用して、メールボックスとして使用される div 要素に出力します。メッセージの確認と更新には 1 秒間隔を使用します。JSON を取得するコードは次のとおりです。
setInterval(function() {
$.getJSON("inbox.php?<?php echo $_SESSION['connect']; ?>", function(data) {
if(data.length > 0) {
var str = "";
$.each(data, function(k, v) {
str += "<div class='inbox'>(" + v.time_trace + ") " + v.name + ": " + v.message + "</div>";
});
$("#messages").html(str);
}
});
}, 1000);
そして、それはすべて正常に機能しています...
ユニコード メッセージ、具体的にはキリル文字のメッセージを送信すると、jQuery がそのタイマー/間隔を使用すると、Windows-1252 でモジバケが発生します。ブラウザーからページ全体を更新するまで、以前のすべてのメッセージが文字化けし、問題なく UTF-8 が表示されます。それは次のようになります。
�его� �ила ��п�ка.
タイマーを無効にしてリフレッシュすると、良いメッセージが表示されますが、自動的にチェックする必要があります。HTML は UTF-8 に設定され、DB は utf8_general_ci に設定されます。
getJSON、またはファイルエンコーディングのようなクレイジーなものと関係があると本当に思います。
ご協力いただきありがとうございます。