0

我正在尝试让 jquery ui 自动完成以处理希伯来字符(utf-8 字符集)。

这是我的工作代码 - 唯一不工作的是字符(自动完成工作,但 ??? 只要是希伯来字母就会出现字符)[ search.php ]。

<?php
    // <-- this is where I add the header() quoted below
    $conn = mysql_connect("host", "user", "pass")  or die(mysql_error());
    mysql_select_db("user", $conn) or die(mysql_error());
    $q = mb_strtolower(($_GET["term"]),'UTF-8');
    $return = array();
    $query = mysql_query("select * from WORDS where LABEL like '%$q%' or DESCRIPTION like '%$q%' or OTHER like '%$q%'") or die(mysql_error());
    while ($row = mysql_fetch_array($query)) {
        array_push($return,array('label'=>$row['LABEL'],
                                'value'=>$row['LABEL'],
                                'description'=>$row['DESCRIPTION'],
                                'other'=>$row['OTHER']));
    }
    echo(json_encode($return));
?>

我已经阅读了许多类似的 stackoverflow 问题,这些问题都表明我必须在php文件的顶部添加以下行:

header('Content-Type: application/json; charset=UTF-8');

或者

header('Content-Type: text/html; charset=utf-8');

两者都使我的 php 完全停止工作(没有任何效果,自动完成中没有任何显示)。

我已将我的phphtml文件都保存为 utf-8 支持(并确保字符不会显示为 ??? 当我将它们键入实际文件时),并将元 utf-8 添加到我的 html 如下:

<meta charset="utf-8">

我还尝试将数据编码为 utf-8,所有这些都阻止了 php 工作(自动完成中没有显示任何内容)。更换:

$row['DESCRIPTION']

mb_convert_encoding($row['DESCRIPTION'], 'UTF-8');

但是,没有任何效果。我究竟做错了什么?

4

1 回答 1

2

在搞砸之后,我终于找到了解决方案。在连接到数据库后在 php 文件中添加这一行就可以了!:

mysql_set_charset('utf8',$conn);
于 2013-04-09T03:05:38.257 回答