hightman / xunsearch

免费开源的中文搜索引擎,采用 C/C++ 编写 (基于 xapian 和 scws),提供 PHP 的开发接口和丰富文档
http://www.xunsearch.com
Other
1.64k stars 391 forks source link

strtolower导致西欧字符乱码 #8

Closed tianpu closed 10 years ago

tianpu commented 10 years ago

https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XSSearch.class.php#L950

一共有三处strtolower,可以修改为mb_strtolower($str,'UTF-8');

如果没有mb扩展,则可以简单的替换特殊字符

比较常见的非标准拉丁字符如下:

德语字母 Ää Öö ß Üü Aa Oo s Uu

法语字母 Àà Ââ Ææ Çç Éé Èè Êê Ëë Îî Ïï Ôô Œœ Ùù Ûû Üü Ÿÿ Aa Aa Aa Cc Ee Ee Ee Ee Ii Ii Oo Oo Uu Uu Uu Yy

西班牙语 Áá Éé Íí Ññ Óó Úú Üü Aa Ee Ii Nn Oo Uu Uu

意大利语 Àà Èè Éé Ìì Íí Îî Òò Óó Ùù Úú Aa Ee Ee Ii Ii Ii Oo Oo Uu Uu

tianpu commented 10 years ago

怀疑substr可能也有类似的问题,不过我不确定,没有仔细看,相对来说substr有问题也不会很致命