Drupalはutf8mb4をサポートするように移行していますが、utf8nb4_general_ciを使用しています。それをサポートするために時間をかけて移動してから、完全にサポートしないのはなぜですか?特定の理由はありますか、それとも以前からutf8_general_ciを継続しているだけですか?
これを無視してとにかくユニコードを使用することで何か問題がありますか?
Drupalチケット: MySQLドライバーは完全なUTF-8(絵文字、アジアの記号、数学記号)をサポートしていません
これはスタック交換に関する 質問 です。これは、本当に今日ではUnicodeを使用しない理由はなく、最後にこれについて question は、「utf8_general_ciは拡張、縮小、または無視できる文字をサポートしないレガシー照合です」と述べています。
WordPressはutf8mb4_unicode_ciを使用します。
推奨事項は古く、utf8mb4_unicode_ci
は問題なく機能するようです。長い間多くの人に利用されてきました。
文字セットをutf8
からutf8mb4
に変更する(より多くのコードポイントをサポートする)と、照合順序をgeneral_ci
からunicode_ci
に変更する(より正確なソートを取得する)には違いがあります。 。どちらの変更も独自の問題を引き起こす可能性があるため、両方を個別に行うことは理にかなっています。
utf8mb4
は8.0.0-beta12以降でデフォルトで使用されます 。主な問題はInnoDBのキーの長さの制限の変更であるように見えましたが、私が理解しているように、utf8mb4
はその変更前でもデフォルトのMyISAMエンジンで動作するはずでした。
unicode_ci
に切り替えても問題は発生しませんが、一部のサイトのソート順が予期せず変更される可能性があります。
デフォルトの照合設定はdefaultであり、モジュールは必要に応じて独自の照合を選択できます。また、モジュールには特定の照合順序が必要であることを示すドキュメントも見つかりませんでした。 データベースインストールガイド は、サポートされている照合順序についての明確な説明が欠けており、一貫性がありません。
PhpMyAdminに関するセクションでは、
COLLATION utf8_general_ciを選択していることを確認してください
コマンドラインからのインストールに関するセクションの後半では、general_ci
は必要ないようで、UTF-8照合は次のようになります。
注:データベースは、utf8_general_ciなどのUTF-8(Unicode)エンコードで作成する必要があります。
さらに、PostgreSQLがサポートされており、デフォルトのUTF-8照合はutf8mb4_unicode_ci
と同等であるため、MySQLでそれを使用しても問題ありません。