即时通讯使用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”,“ç”变成黑色正方形,并带有白色问号。
我相信蜘蛛可能有一个不同的工作字符集,但我似乎无法理解,如果是这样的话。也正在朝着英语发展,我认为它不难理解,它一路上有一些打嗝。
有没有人有任何经验,或者我应该怎么做才能解决这个问题?
真正搞砸我的不是理解为什么我在数据库中得到奇怪的符号。
Thnak你,艰难的有限即时通讯保留现在,我不想使用谷歌,因为我没有办法控制蜘蛛或结果布局整合到我的网站。我最初看着Lucene,但它已经过去了。 – Joel 2010-08-04 10:45:24
如果可以,您可以使用输出缓冲来捕获您生成的整个页面,然后如果它被蜘蛛请求,请使用iconv将其转换为ISO-8859-1 // IGNORE。 – jmz 2010-08-04 12:50:55