我制作了一个带有大约10万字的旁遮普语Unicode字典。有一个字母ਸ਼
,在unicode的代码是ਸ਼
,并且有很多这样的字母,如ਖ਼
ਜ਼
ਗ਼
ਫ਼
。但在这种语言中,字母下的字母也可以单独键入,但unicode中包含字母。在db中,word
表中有单词,word_hash
中有单词的md5。当我尝试使用语句SELECT * FROM db WHERE word_hash = md5('word');
的php搜索数据库时,它导致找不到带有这些点的字母的记录。当我试图搜索时,我发现由搜索语法生成的db和md5中的单词的md5是不同的。为什么这样?我通过一个文本框输入了所有的单词,并且输入的md5与mysql语法一致。unicode文本的MD5转换
对于例如:对这个词ਸ਼ਰਬਤ
是45f756f02a28b5ec48ddf369db6ad7e6
通过MySQL查询,并在数据库中回荡代码d6da1a44526c5ab1259dcc05404b1e8c
两名候补为ਸ਼
是ਸ਼
和ਸ਼
你看看http://stackoverflow.com/questions/2446778/how-to-display-unicode-data-with-php?rq=1 – nKandel
你为什么用散列而不是单词搜索?您应该将这些单词存储在[规范化形式](http://unicode.org/reports/tr15/)中。然后,您可以使用单词而不是散列进行搜索。 – Gumbo
我需要使用md5进行搜索,因为当我以规范化的形式进行搜索时,它会考虑带有和不带圆点的字母。如果有没有圆点的字,它会显示结果,即使我们键入圆点也是如此。 .. – shahbaz