【发布时间】:2013-07-20 04:27:33
【问题描述】:
我制作了一本包含大约 10 万个 Unicode 旁遮普语单词的字典。有一个字母ਸ਼,它的unicode代码是ਸ਼,还有很多这样的字母ਖ਼ਜ਼ਗ਼ਫ਼。但是在这种语言中,字母下面的点也可以单独输入,但unicode中有组合字母。在数据库中,word 表中有单词,word_hash 中有单词的 md5。当我尝试使用带有语句SELECT * FROM db WHERE word_hash = md5('word'); 的php 搜索数据库时,它会导致找不到带有带有点的此类字母的单词的记录。当我尝试搜索时,我发现db中单词的md5和搜索语法生成的md5不同。为什么会这样?我已经通过文本框输入了所有单词,输入的 md5 是 mysql 语法。
例如:单词ਸ਼ਰਬਤ 的代码是由mysql 查询回显的45f756f02a28b5ec48ddf369db6ad7e6,在数据库中是d6da1a44526c5ab1259dcc05404b1e8c
ਸ਼ 的两个替代品是 ਸ਼ 和 ਸ਼
【问题讨论】:
-
为什么用哈希而不是单词搜索?您应该将单词存储在normalized form 中。然后您可以使用单词而不是哈希进行搜索。
-
我需要使用 md5 进行搜索,因为当我以标准化形式进行搜索时,它认为带点和不带点的字母相同..所以如果有一个没有点的单词,它会显示结果即使我们输入点...