看了很多帖子才知道,原來UTF-8編碼下中文tags搜索不到是因為編碼的緣故,前輩提出要對字符進行轉換,但應該對userfun.php 做怎樣的修改呢,請知道的前輩能詳細說清楚吧,別再有一句沒一句的讓我們這些初學者摸不著頭腦了,謝謝了!
原userfun.php在下面,對齊進行轉換應該如何操作,請大大們不吝賜教!
哎,看來真是大俠都隱退江湖了!
求人不如求己,對搜索字符進行轉碼,經過Google 的幫忙找到了一位大俠的帖子,看明白了urlencode的用法之后對原userfun.php 簡單修改了下,現在支持UTF-8 的中文tags搜索,解決UTF-8下中文tags搜索不到的問題
處理方法見下:
在userfun.php 中,將輸出網址進行中文轉碼,就像百度,Google 一樣將 輸入字符進行編碼轉換:
這是原userfun.php 顯示本文tags的語句:
$tagslink=$public_r[newsurl]."e/search/?searchget=1&tbname=$tbname&tempid=$tempid&show=keyboard&keyboard=".$r[$i]; //鏈接
紅色處是原有的網址后綴,我們分析前臺tags代碼時可以得知:
https://www.daixiao360.cn/e/search/?searchget=1&tbname=news&tempid=1&show=keyboard&keyboard=帝國
上面帝國只是舉個例子,這里可得知前臺tags "帝國" = 后臺"$r[$i] ,那么對我像我這樣代碼零基礎的人來說能理解到這程度已經花了很多心思了
前臺試驗了下在Google 搜索 帝國,將返回地址中帝國的編碼替換到上面網址實例中進行搜索請求,結果返回了正確的搜索結果,不會像之前直接中文時老是返回搜索不到,而實際明明能在全站搜索中搜索到的尷尬情形.
參照前面那位大俠在博客中的范例,只要對后面輸出地址進行轉碼就行,遂大膽試驗了下:
$tagslink=$public_r[newsurl]."e/search/?searchget=1&tbname=$tbname&tempid=$tempid&show=keyboard&keyboard=".urlencode($r[$i]); //鏈接
直接將輸出結果$r[$i]進行轉碼,結果中文tags對應的搜索鏈接地址變成了:
https://www.daixiao360.cn/e/search/?searchget=1&tbname=news&tempid=1&show=keyboard&keyboard=%E5%B8%9D%E5%9B%BD
至此試驗成功,本文只針對初學及代碼零基礎的菜友們,大俠可以略過,不過衷心希望帝國CMS在做相關插件及應用的時候對兩種編碼全面考慮,不然你出個UTF8而沒有可廣泛應用的內容=沒用 !