这是交易。我正在尝试制作一个适用于 MySQL 的类似聊天的应用程序。消息存储在数据库中,并使用 JSON 检索。
使用 .getJSON 我将它打印到用作邮箱的 div 元素。我使用 1s 间隔来检查消息并刷新。这是检索 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);
一切都很好,除了...
当我发送一条 unicode 消息,特别是西里尔文消息时,当 jQuery 使用该计时器/间隔时,我会在 Windows-1252 中得到 mojibake。之前的所有消息都会出现乱码,直到我从浏览器刷新整个页面,看起来还不错,显示 UTF-8。有点像这样:
�его� �ила ��п�ка.
如果我禁用计时器并刷新自己,我会收到很好的消息,但我需要它来自动检查。HTML 设置为 UTF-8,DB 设置为 utf8_general_ci。
我真的认为它与 getJSON 或文件编码之类的疯狂有关。
谢谢你的帮助。