2011-06-19 162 views
2

我創建了存儲記錄的數據庫,然後我創建了搜索記錄如何搜索包含阿拉伯字符的字符串?

它的偉大工程,除了阿拉伯語字符的搜索引擎,它說:「沒有找到匹配」

這就是搜索引擎代碼

include('conn.php'); 
mysql_query("SET NAMES 'utf8'"); 
mysql_query('SET CHARACTER SET utf8'); 

$strlen = strlen($_GET['content']); 
$display_count = $_GET['count']; 
$select = "SELECT * FROM letter_cast WHERE name LIKE '%".$_GET['content']."%' OR title LIKE '%".$_GET['content']."%'"; 
$res = mysql_query($select); 
$rec_count = mysql_num_rows($res); 

可能是什麼問題?

+0

? –

+0

要清楚 - 您的搜索包含阿拉伯字符還是數據?或兩者? –

+0

是的,我的表格是UTF8,並且我的數據和搜索都包含阿拉伯字符 –

回答

3

這很可能是搜索字符串的編碼錯誤。如果您需要將它傳遞給SQL查詢,請確保使用內置的urlencode/urldecode和utf8_encode/utf8_decode對其進行了正確的編碼/解碼。

你需要如何做到這一點正好可以依賴於您的服務器環境一點,但最簡單的情況,它只是:

$content = urldecode($_GET['content']); 

你還需要確保以往任何頁面上character encoding(即鏈接或向搜索頁面提交請求)已正確設置,否則瀏覽器將不會正確編碼請求。

+0

該怎麼做? –

+0

@RayanSp我用一些額外的信息/示例代碼編輯了我的答案,這可能有用。 – Alo

+0

我曾嘗試什麼ü如上所述,仍然沒有運氣,順便說一句,當我從phpMyAdmin的查看錶,阿拉伯語的數據看起來像這樣「م ت ط ل ب」 –

1

我知道這是一個古老的線程,但它可以幫助其他人,

php腳本也必須是使用UTF-8表格UTF-8編碼