【问题标题】:jquery ui autocomplete special charactersjquery ui 自动完成特殊字符
【发布时间】:2013-12-24 11:24:59
【问题描述】:

我用 jquery UI 自动完成创建了一个小的 jquery 示例

$(function() {
    //autocomplete
    $(".selector").autocomplete({
        source: "getdata.php",
        minLength: 1

    });
})

getdata.php:

<?php
if (isset($_GET['term'])){
    $return_arr = array();

    try {
        $connectionInfo = array('Database'=>'db','UID'=>'sa','PWD'=>'pw');
        $connection = sqlsrv_connect('db-server',$connectionInfo); 

        if($connection)
        {
            $result = sqlsrv_query( $connection, 'SELECT TOP 10 test FROM table WHERE test like ? ',array('%'.$_GET['term'].'%'));
            while($row = sqlsrv_fetch_array($result)){
                $row = array_map('utf8_encode', $row);
                $return_arr[] =  $row['test'];
            }
        }
    }
    catch(PDOException $e) {
        echo 'ERROR: ' . $e->getMessage();
    }



    /* Toss back results as json encoded array. */
    echo json_encode($return_arr);
}
?>

它可以工作,但问题是数据源不是 Unicode,所以字符串无法正确显示我不知道要使用哪种转换。

如果可能的话,我希望保持与数据库 (Windows-1250) 中相同的编码,因为该项目还可能将内容从网站插入回数据库

我试图只是转储原始字符串,但是当返回数组被转换时,我在 json 中得到带有特殊字符的值作为 null

【问题讨论】:

    标签: javascript php jquery json jquery-ui


    【解决方案1】:

    您可以在自动完成显示数据之前对其进行编码

    【讨论】:

    • 感谢您的回答,我确实尝试在将字符串放入 json 之前对字符串进行 baes64 编码,但我不知道用于将它们解码回来的 'jquery .ui.autocomplete' 的哪个事件在它们显示之前
    猜你喜欢
    • 2017-02-08
    • 2014-08-23
    • 1970-01-01
    • 2014-02-08
    • 1970-01-01
    • 1970-01-01
    • 2011-09-23
    • 2018-12-21
    • 1970-01-01
    相关资源
    最近更新 更多