我是否有办法阻止jQuery autocomplete结果将UTF8字符显示为带有“?”的黑色方块内?
这是我的代码:
<?php
$text = $mysqli->real_escape_string($_GET['term']);
$query = "SELECT DISTINCT field_63 FROM jbd_joomd_type15 WHERE field_63 LIKE '%$text%' ORDER BY field_63 ASC";
$result = $mysqli->query($query);
$json = '[';
$first = true;
while($row = $result->fetch_assoc())
{
if (!$first) { $json .= ','; } else { $first = false; }
$json .= '{"value":"'.$row['field_63'].'"}';
}
$json .= ']';
echo $json;
?>
我的jQuery代码:
<script type="text/javascript">
$(document).ready(function()
{
$('#field_63').autocomplete(
{
source: "cities.php",
minLength: 1
});
});
</script>
答案 0 :(得分:0)
您是否尝试过json_encode
数据?
See documentation here: json_encode — Returns the JSON representation of a value
你也没有分享你的jQuery代码???
我还找到了this discussion on jQuery autocomplete and special character encoding。
答案 1 :(得分:0)
我通过替换
来解决问题$json .= '{"value":"'.$row['field_63'].'"}';
与
$json .= '{"value":"'.utf8_encode($row['field_63']).'"}';
答案 2 :(得分:0)
我有同样的......
我所有的php网站都是utf-8编码的,MYSQL数据库也是。到处都很好,并显示正确的字符,但这个自动完成列表。 在返回值我需要使用它。
utf8_encode(return_value) ;
这解决了这个问题。