从阿拉伯语文本中删除重音字符

时间:2010-07-07 09:51:30

标签: php mysql

我有一个整理了utf8 / utf8_bin的数据库。 DB有阿拉伯语文本和重音字符(kasar等)。我想搜索没有重音字符的文本。

我做的是,我写了'喜欢'查询......

WHERE replace(field1,0x[CODE],'') like '%[arabic text]%' --- where [CODE] is the accent char.

当我用静态utf阿拉伯语文本代替field1时,这工作正常。但是当它从数据库字段运行时它不会被替换。

可能是db字段有latin1编码。我该如何解决/检查这个问题。

感谢。

1 个答案:

答案 0 :(得分:2)

utf8_bin是二进制排序规则 - 在比较字符方面非常直观且严格。

utf8_general_ci更宽松,并将变音符号和重音标准化为“基本”版本:

Ä => A

Ü => U等。

我之前从未使用过阿拉伯语,所以我不知道它是否适用于那些口音,但我希望如此。

您应该可以暂时使用这样的宽松归类:

WHERE field1 like '%[arabic text]%' COLLATE utf8_general_ci;