2010-08-04 179 views
1

即時通訊使用Sphider作爲我的網站的搜索引擎,它很容易處理,但即時通訊與本地化字符有一些主要問題。PHP搜索引擎問題

我的所有html/php頁面都將字符集定義爲UTF-8,而來自Sphider的搜索和結果頁charset = ISO-8859-1,當我第一次使用Sphider「蜘蛛」抓取我的網站時完成所有我的本地化字符到一些編纂我不知道:

「C」變成「§」等以「A」,「A」等

當我在MySQL創建的DB我做它是一個utf-8_general_ci也是我對DB的防禦: MySQL字符集:UTF-8 Unicode(utf8) MySQL連接排序規則:utf-8_unicode_ci

這是一個真正的問題,因爲搜索將無法正常工作,如果我搜索「diferença」,例如在URL中它將顯示爲「?query =diferença& search = 1」,這是正確的,但不會產生任何結果「建議搜索」將在其不可見的情況下顯示爲「diferen a」,「ç」變成黑色正方形,並帶有白色問號。

我相信蜘蛛可能有一個不同的工作字符集,但我似乎無法理解,如果是這樣的話。也正在朝着英語發展,我認爲它不難理解,它一路上有一些打嗝。

有沒有人有任何經驗,或者我應該怎麼做才能解決這個問題?

真正搞砸我的不是理解爲什麼我在數據庫中得到奇怪的符號。

回答

0

快速瀏覽一些Sphider源代碼文件顯示該應用程序只能與Latin1字符集一起使用。你應該切換到其他搜索引擎,如Lucene。儘管如此,您仍需要進行更多與搜索相關的編碼。如果您不喜歡這樣做,並且您的網站是公開的,只需整合Google搜索即可。

+0

Thnak你,艱難的有限即時通訊保留現在,我不想使用谷歌,因爲我沒有辦法控制蜘蛛或結果佈局整合到我的網站。我最初看着Lucene,但它已經過去了。 – Joel 2010-08-04 10:45:24

+0

如果可以,您可以使用輸出緩衝來捕獲您生成的整個頁面,然後如果它被蜘蛛請求,請使用iconv將其轉換爲ISO-8859-1 // IGNORE。 – jmz 2010-08-04 12:50:55

0

你應該在UTF-8中擁有所有東西。

  • 誰編輯任何給定的頁面
  • 物理文件
  • 的輸出HTML文件
  • 的頭
  • 到數據庫
  • 表定義的連接形式

想念一個人,你會遇到問題(我正在談論個人經驗)

+0

我相信我只是做了Sphider應用程序,不能使用utf-8和im無法適應它。 – Joel 2010-08-04 10:46:23

0
  1. 修改相應的模板目錄下的文件「header.html中」的4號線<meta http-equiv="content-type" content="text/html; charset=UTF-8">
  2. 轉換相應的PHP文件中的「語言」目錄UTF8。

如果上述不足,請按照粉碎機的回答。