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));
?>
私は多くの同様のスタックオーバーフローの質問を読みましたが、それらはすべて、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');
ただし、何も機能しません。私は何を間違っていますか?