这是交易。我正在尝试开发一个适用于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使用那个计时器/间隔时,我会在Windows1252中得到mojibake。之前所有的消息都会被混淆,直到我从浏览器刷新整个页面,而且看起来还不错,显示了UTF-8。看起来是这样的:
Ð�егоÑ� Ñ�ила Ñ�Ñ�пÑ�ка.如果我禁用计时器,并刷新自己,我会收到好消息,但我需要它自动检查。HTML设置为UTF-8,DB设置为utf8_general_ci。
我真的认为这与getJSON有关,或者与文件编码有关。
谢谢你的帮助。
发布于 2012-03-08 02:11:13
我通过删除我在代码的另一部分中使用的htmlspecialchars来解决我的问题。弄得一团糟。谢谢你的标记字符串说明,我很感激。
https://stackoverflow.com/questions/9467823
复制相似问题