(I cannot speak as an authority specifically on Persian collations.) The general idea behind MySQL collations is
- _bin -- just check the bits; this is usually useless for "words".
- _general_ci -- Case and Accent Insensitive, and rather lame when it comes to all other 'rules'.
- _unicode_ci, _unicode_520_ci, _0900_ai_ci -- Case and Accent Insensitive; based on Uniocde standards 4.0.0, 5.2.0, 9.0.0; but unlikely to be "correct" for any particular language (Spanish, Persian, German, etc)
- _persian_ci (etc) -- Similar to one of the Unicode collations, but tuned for the language.
An example of how specific collations may differ:
- _spanish_ci -- one treats "ch" as two letters, as with most collations
- _spanish2_ci -- treats "ch" as a single letter: 'cz' < 'ch' < 'da'. (And other differences.)
- _lithuanian_ci -- "ch" is the same as "c"; that is 'cha' = 'ca'.
I assume there may be differences between _persian_ci and _unicode_ci in the Persian characters. A glance of http://mysql.rjweb.org/utf8_collations.html and http://mysql.rjweb.org/utf8mb4_collations.html seems to say that Western European characters are collated the same in those collations.