2010-08-04 180 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。

如果上述不足,请按照粉碎机的回答。