1

有没有办法阻止jQuery 自动完成结果将 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>
4

3 回答 3

0

你试过json_encode你的数据吗?

请参阅此处的文档:json_encode — 返回值的 JSON 表示

你也没有分享你的jQuery代码???

我还发现了关于 jQuery 自动完成和特殊字符编码的讨论。

于 2013-01-03T18:39:10.360 回答
0

我有同样的...

我所有的 php 网站都是 utf-8 编码的,MYSQL 数据库也是。到处看起来都不错,并且显示了正确的字符,但是这个自动完成列表。在返回值处我需要使用它。

utf8_encode(return_value) ;

这解决了问题。

于 2013-11-01T19:01:24.230 回答
0

我通过更换线路解决了问题

$json .= '{"value":"'.$row['field_63'].'"}';

$json .= '{"value":"'.utf8_encode($row['field_63']).'"}';
于 2013-01-30T10:36:23.240 回答