我正在尝试让 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 完全停止工作(没有任何效果,自动完成中没有任何显示)。
我已将我的php和html文件都保存为 utf-8 支持(并确保字符不会显示为 ??? 当我将它们键入实际文件时),并将元 utf-8 添加到我的 html 如下:
<meta charset="utf-8">
我还尝试将数据编码为 utf-8,所有这些都阻止了 php 工作(自动完成中没有显示任何内容)。更换:
$row['DESCRIPTION']
和
mb_convert_encoding($row['DESCRIPTION'], 'UTF-8');
但是,没有任何效果。我究竟做错了什么?