返回列表 發帖

救助 jquery + Autocomplete + Big5 "許功蓋"問題

高手高手高高手 wmf 管理員及網上各位高手,煩請幫幫忙了:

我有參考前面您回覆的  http://jsgears.com/thread-266-1-1.html  …等其他的資料
已經使 autocomplete + Big5 能做動
我有用 vmware 另做一個 utf8 的環境是ok
但是big5 是能做動,卻延伸出"許功蓋"的問題,只要是那幾個可怕的中文字就不能做動,非常非常頭大,已經搞了好多天了,不得不上來求助!
網頁是 big5 ; 資料庫也是 big5

環境如下
win32 + Apache + php 4.3.4 + MySQL 4.0.16 + Adodb ( 用來連結資料庫的外掛,因為有可能會轉 mssql 或同步向mysql 及 mssql 要資料的需求)
第一行 require_once 是導入 adodb 的函數及資庫連結設定,沒什麼問題就不上傳了。

<?php require_once('testdb.php'); ?>
<?
$db->EXECUTE("set names 'big5'");  // 指定 與資庫存溝通為 big5
//
//$_GET["q"] = "中";  // ok, 中文;中六;中四;中文文 。都能正確叫出來
//$_GET["q"] = "許"; // 什麼字都沒有
//$searchText = $_GET["q"]; //接入搜尋字串

$searchText = join('', json_decode('["'. strtr($_GET["q"], '%u', '\u') . '"]'));
if (!$searchText) return; //判斷是否有字串傳入
// 『許』正常顯示 utf-8 格式
$searchText = iconv("UTF-8","big5",$searchText);  // -- OK
// 『許』ok,變 big5 碼

$jquerysearch = "SELECT name FROM employee WHERE name LIKE '%". $searchText . "%' ORDER BY name DESC";
$jrs = $db->SelectLimit($jquerysearch,10);  // 僅取前十筆資料
//$jrs = $db->Execute($jquerysearch); //標準取得資庫函式

// print $jquerysearch; // 可得到 SELECT name FROM employee WHERE name LIKE '%許"%' ORDER BY name DESC 。ok

         while ($jqa = $jrs->FetchRow()) {
                //
                foreach ($jqa as $value){
                       print iconv("big5","utf-8//IGNORE",$value)."\n";//撈出資料
                        //print $value."\n";//撈出資料
                        }
         }
?>

json 傳遞強制要用 UTF-8 編碼,如果你一定要這樣搞,不如自己寫個回傳吧.....

TOP

返回列表 回復 發帖