我在 jquery ui 自动完成中显示数据时遇到了一些问题,当我显示文本时,它不是 utf-8 编码的,尽管我的数据库和页面使用的是 utf-8。
此外,当我尝试以任何其他方式显示它时,它会以正确的编码正常显示。
jquery ui 脚本。
<script type="text/javascript" charset="utf-8">
$(function() {
function log( message ) {
$( "<div>" ).text( message ).prependTo( "#log" );
$( "#log" ).scrollTop( 0 );
}
$( "#items" ).autocomplete({
source: "getSurgestedItems.php",
minLength: 2,
select: function( event, ui ) {
log( ui.item ?
"Selected: " + ui.item.value + " aka " + ui.item.id :
"Nothing selected, input was " + this.value );
}
}).data("autocomplete")._renderItem = function(ul, item){
return $("<li>")
.data("item.autocomplete", item)
.append("<a>" + item.value + "<br>" + item.desc + "</a>")
.appendTo(ul);
};
});
</script>
获取项目的 php 脚本。
while ($row = $result->fetch_assoc()) {
$i++;
if(!$first){
$json .=',';
}
else{
$first = false;
}
$name = addslashes($row['name']);
$desc = mb_substr(addslashes($row['description']), 0, 60, 'UTF-8');
$desc .= '...';
$json .='{"value" : "'.$name.'",
"desc" : "'.$desc.'"}';
}
$json .=']';
echo $json;
现在就像我说的那样,我试图以我能想到的各种方式显示数据,而且只有自动完成功能才会显示错误。