Php jqueryajax与字符编码
我使用以下代码从php页面获取一些html内容:Php jqueryajax与字符编码,php,ajax,encoding,Php,Ajax,Encoding,我使用以下代码从php页面获取一些html内容: $.ajax({ url:server+'/getMessage/40', cache: false, success: function(res) { var text = res.responseText; $('#result').html(res); } }); 文本从数据库中检索 php文件如下所示: $app->get('/app/get/getMessage/:Id',f
$.ajax({
url:server+'/getMessage/40',
cache: false,
success: function(res) {
var text = res.responseText;
$('#result').html(res);
}
});
文本从数据库中检索
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;
});
$app->get('/app/get/getMessage/:Id',函数($Id='')使用($app){
$msgElements='标题,正文';
$msgFe=$conn->query(“从Id='“$Id.”的消息中选择$msgElements”;
$fields=explode(“,”,$msgElements);
而($msgData=$conn->extract($msgFe)){
foreach($fields作为$field){
$arr->$field=$msgData->$field;
}
}
$ele='1〕
“.$arr->Title”
“.$arr->Body”
';
echo$ele;
});
如果我使用正确的GET
指令将浏览器放置在php页面的位置,那么我就可以毫无问题地获取文本。但是,如果我使用上述ajax函数检索文本,它将显示?
s
根据我的测试(以及这里的其他线程),我假设这个问题依赖于ajax函数中的某个地方。。。有什么帮助吗
PS我注意到,如果我尝试对包含未正确可视化字符的文本使用
json\u encode()
,结果是null
。我希望我能帮忙 您必须utf8\u encode()
从数据库中获取您的值,因为生成的值不是您所说的utf8编码。您是否尝试在php开头添加标题(“charset=utf-8”)?AJAX响应的响应标题可能需要反映数据库中的内容。@Jack,我该怎么做?@ghego1标题('Content-Type:text/html;charset=latin1');
…虽然没有保证。@Jack thank's!但是我刚刚意识到只有排序规则是拉丁瑞典语的,我认为实际的数据是UTF8。这让我更加困惑这不起作用的原因…我已经尝试过了,但没有解决问题。。。(因此我将其从代码中删除)你确定你的页面是utf8编码的吗?你是否有一个元数据将字符集设置为utf8?在js应该放置html的文档的标题中,我有
,所以我想是的,但我不确定…你是对的!!!我只是用错误的方式进行utf8\u编码,所以这不起作用…我已经纠正了我的方式编码,现在它工作了,谢谢!!