jQuery ajax和字符编码

时间:2012-12-06 14:49:13

标签: php ajax encoding

我正在使用此代码从php页面获取一些html内容:

$.ajax({
   url:server+'/getMessage/40',
   cache: false,
   success: function(res) {
       var text = res.responseText;
       $('#result').html(res);
    }
});

从db。

中检索文本

php文件如下所示:

$app->get('/app/get/getMessage/:Id',function ($Id='') use ($app) {
$msgElements = 'Title,Body';
$msgFe = $conn->query("SELECT $msgElements FROM messages WHERE Id='".$Id."'");
    $fields = explode(',',$msgElements);
    while($msgData = $conn->extract($msgFe)){
        foreach($fields as $field) {
            $arr->$field = $msgData->$field;
        }
    }
    $ele=' <div class="modal-header">
                <h1>'.$arr->Title.'</hi>
            </div>
            <div class="modal-body">
                '.$arr->Body.'
            </div>
            <div class="modal-footer">
            </div>
            ';
    echo $ele;
});

如果我将浏览器放在php页面的位置,并使用正确的GET指令,我会毫无问题地获取文本。但是,如果我使用上面的ajax函数检索文本,它会显示? s ...

从我的测试(以及SO上的其他线程)我假设问题依赖于ajax函数中的某个地方......有什么帮助吗?

PS我注意到如果我尝试在包含未正确显示的字符的文本上使用json_encode(),则结果为null。我希望我有所帮助!

1 个答案:

答案 0 :(得分:0)

您必须utf8_encode()您的数据库中的值,因为结果值不是您所说的utf8编码。