I'm using utf8 (utf8_general_ci) and searching arabic without diacritics doesn't work, it isn't insensitive or it is but don't work properly.
I tried looking at the character with and without a diacritic using Hex and it looks like mysql considering it as two distinct character.
I'm thinking about using hex and replace (a lot of replace) to search for words while filtering diacritics.
my solution to have an insensitive search for arabic words:
SELECT arabic_word FROM Word
WHERE
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(HEX(REPLACE(
arabic_word, "-", "")), "D98E", ""), "D98B", ""), "D98F", ""), "D98C",
""),"D991",""),"D992",""),"D990",""),"D98D","") LIKE ?', '%'.$search.'%'
the values formatted in hexadecimal are diacritics that we want to filter.
ugly but I didn't find another anwser.