新聞中心
帝國cms教程:關(guān)于utf-8下中文tags搜索不到的問題
作者 / 無憂主機(jī) 時(shí)間 2015-11-07 11:53:43
最近發(fā)現(xiàn)一些php空間用戶反映的問題,在帝國cms(empirecms)使用中,在utf-8下遇到中文tags會(huì)搜索不到。在網(wǎng)上查了很多相關(guān)資料。原來是UTF-8編碼下中文tags搜索不到是因?yàn)榫幋a的緣故,因此要進(jìn)行支付轉(zhuǎn)換。但是又不知道改如何對(duì)userfun.php 進(jìn)行修改。在網(wǎng)上詢問了很多高手,在高手的指點(diǎn)下,了解到了urlencode的用法之后對(duì)原userfun.php 簡(jiǎn)單修改了下,現(xiàn)在支持UTF-8 的中文tags搜索,解決UTF-8下中文tags搜索不到的問題。 解決方法很簡(jiǎn)單: 在userfun.php 中,將輸出網(wǎng)址進(jìn)行中文轉(zhuǎn)碼,就像在百度,Google 那樣將輸入字符進(jìn)行編碼轉(zhuǎn)換。比如這是原userfun.php 顯示本文tags的語句:
$tagslink=$public_r[newsurl]."e/search/?searchget=1&tbname=$tbname&tempid=$tempid&show=keyboard&keyboard=".$r[$i]; //鏈接其中‘ $r[$i] ’是原有的網(wǎng)址后綴,分析前臺(tái)tags代碼時(shí)可以得知:
http://www.xxx.com/e/search/?searchget=1&tbname=news&tempid=1&show=keyboard&keyboard=帝國上面的‘帝國’只是舉個(gè)例子,這里可得知前臺(tái)tags "帝國" = 后臺(tái)"$r[$i] , 前臺(tái)試驗(yàn)了下在Google 搜索‘帝國’,將返回地址中帝國的編碼替換到上面網(wǎng)址實(shí)例中進(jìn)行搜索請(qǐng)求,結(jié)果返回了正確的搜索結(jié)果,不會(huì)像之前直接中文時(shí)老是返回搜索不到。參照前面高手在博客中的范例,只要對(duì)后面輸出地址進(jìn)行轉(zhuǎn)碼就行:
$tagslink=$public_r[newsurl]."e/search/?searchget=1&tbname=$tbname&tempid=$tempid&show=keyboard&keyboard=".urlencode($r[$i]); //鏈接直接將輸出結(jié)果$r[$i]進(jìn)行轉(zhuǎn)碼,結(jié)果中文tags對(duì)應(yīng)的搜索鏈接地址變成了:
http://www.xxx.com/e/search/?searchget=1&tbname=news&tempid=1&show=keyboard&keyboard=%E5%B8%9D%E5%9B%BD至此看出測(cè)試成功。雖然有點(diǎn)麻煩,但還是希望官網(wǎng)能夠做相關(guān)插件及應(yīng)用的時(shí)候?qū)煞N編碼全面考慮,不然你出個(gè)UTF8而沒有可廣泛應(yīng)用的內(nèi)容=沒用 ! 無憂主機(jī)相關(guān)文章推薦閱讀: 帝國CMS快速入門教程:新增專題的方法 帝國CMS快速入門教程:如何修改首頁模板 帝國CMS怎么把首頁自帶的INDEX.HTML去掉
本文地址:http://www.gle-technology.com/empirecms/20599.html