Unicode照合を使用する必要があります。デフォルトでは、システムまたはテーブルの各フィールドに設定できます。次のUnicode照合名があり、これが違いです。
utf8_general_ciは非常に単純な照合です。ただ-すべてのアクセントを削除します-次に大文字に変換し、この種の「ベースレター」結果レターのコードを使用して比較します。
utf8_unicode_ciは、デフォルトのUnicode照合要素テーブルを使用します。
主な違いは次のとおりです。
- utf8_unicode_ciは、いわゆる拡張と合字をサポートします。たとえば、ドイツ語の文字ß(U + 00DF LETTER SHARP S)は「ss」の近くにソートされます。文字Œ(U + 0152 LATIN CAPITAL LIGATURE OE)は「OE」の近くにソートされます。
utf8_general_ciは展開/合字をサポートしていません。これらすべての文字を単一の文字として、場合によっては間違った順序で並べ替えます。
- utf8_unicode_ciは一般的に すべてのスクリプトでより正確になります。たとえば、キリル文字ブロックの場合:utf8_unicode_ciは、ロシア語、ブルガリア語、ベラルーシ語、マケドニア語、セルビア語、ウクライナ語のすべての言語に適しています。 utf8_general_ciは、ロシア語とブルガリア語のキリル文字のサブセットにのみ問題ありません。ベラルーシ語、マケドニア語、セルビア語、ウクライナ語で使用される余分な文字は適切に分類されていません。
+/- utf8_unicode_ciの欠点は、utf8_general_ciよりも少し遅いことです。
したがって、使用する特定の言語/文字を知っているかどうかに応じて、より十分なカバレッジを持つutf8_unicode_ciを使用することをお勧めします。