用LIKE搜尋中文的問題...急

各位大大好....

小弟在做搜尋功能時,碰到這樣的問題...以下

我的測試文字是...."許攻蓋測試"

當我用like '%(許測試這3字)%'...都是可以搜尋的到紀錄

但用攻蓋這2各字...怎麼下like語法...就是不行...找不到= =

請問各位大大...這是什麼情況...我該如何解決呢...

大五碼的問題嗎?...小弟網頁是UTF8寫成...MYSQL也是UTF8...

請各位大大幫幫忙了................

Update:

to penny...

我必須解決的就是這些字串問題....

Update 2:

to penny....

直接LIKE%許測試% 才搜尋不到吧...我想你誤解了

我有用( )把他們框起來...是說我單獨使用他們是OK的...

對於LIKE的用法...我還稍微了解怎麼下的^^~

對....我有在MYSQL直接下...是沒辦法的...

to Jelly....

我已經用UTF8的格式去寫的....所以並沒有BIG5的問題...

Update 3:

to Jelly....

小弟..不清楚大哥您的意思ㄝ....

衝碼不是發生在"大五碼"身上嗎...

所以一般都是改成UTF8去處理..不是嗎?!

請恕小弟駑鈍....

另外magic_quotes_gpc = On...是這樣設定沒錯

而且小弟也在上面提到...也直接在資料庫下過指令

一樣無法搜尋到.....

請大大能在多幫小弟想想是怎樣的問題嗎?

Update 4:

to Jelly....

大大...由於公司資料關係...所以小弟不方便

提供一下....我的MySQL 客戶端版本: 4.1.22

我測試用的APPSERV是5.XXX版..是沒這樣的問題

不過我還是得解決在4.1.22上的問題...X.X

2 Answers

Rating
  • Jelly
    Lv 7
    1 decade ago
    Favorite Answer

    $keyword = addslashes("攻蓋");

    like '%{$keyword}%'

    試試吧

    不行就算了 = =

    我有點懶的測

    抱歉ㄚ

    我的善良只有那麼一點點程度

    2008-03-05 05:07:48 補充:

    補充一下

    如果可以用的原因好了 = =

    相信你一定知道 這3個字是該死的衝碼字

    所以才無聊的找自己麻煩

    php.ini中 有一個設定

    magic_quotes_gpc = On

    自動處理衝碼字

    它會自己在 有衝碼的字前面加上 \ 並轉換成 ASCII 編碼(我記不得名字亂打的 意思到就好)

    但這部份 只自動在 "寫入資料庫部份"

    你做的是搜索 所以不會自己加衝碼字

    所以只好自己在搜尋前 先加好

    再去搜

    我猜有用啦 = = 懶的測

    沒用就算了...當我沒回答過

    以上 XD

    2008-03-06 15:42:50 補充:

    = = 你跟本沒看說明嘛

    我有說是

    utf-8 或 big5 問題嗎 = =

    2008-03-10 22:36:55 補充:

    資料庫拍圖出來

    然後 sql 全句寫出來吧

    我試都可以的

    2008-03-11 18:23:49 補充:

    phpMyAdmin 2.6.4-pl3

    MySQL 版本 3.23.58

    測試結果沒問題

    但我沒MySQL 客戶端版本: 4.1.22板本可以測

    幫不上忙了

    Source(s): 我亂掰的 聽聽就好, 我亂掰的 聽聽就好
  • 1 decade ago

    資料庫的關係吧

    我用過ORACLE

    ORACLE有些字好像也會無法辨識

    我曾經在ORACLE 直接下SQL語法

    搜尋"測試" 這2個字

    也是都找不到.要多加幾個字

    你試試別的字串看看

    2008-03-04 21:01:20 補充:

    你內容有沒有打錯阿?

    測試文字是...."許攻蓋測試"

    直接LIKE%許測試% 才搜尋不到吧..

    LIKE%攻蓋%應該找的到..

    你是在 MYSQL裡直接搜尋嗎?

    Source(s): ME
Still have questions? Get your answers by asking now.