0

这是交易。我正在尝试制作一个适用于 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 或文件编码之类的疯狂有关。

谢谢你的帮助。

4

1 回答 1

0

我通过删除我在另一部分代码中使用的 htmlspecialchars 解决了我的问题。这弄得一团糟。感谢您提供标记字符串注释,我很感激。

于 2012-03-08T02:11:13.767 回答