utf8mb4_general_ciとutf8mb4_unicode_ciの違い
utf8mb4_general_ciとutf8mb4_unicode_ciの違いってなんだっけ?と思った時の覚書。
環境: MariaDB 10.5.9
参考サイト
utf8mb4_general_ciとutf8mb4_unicode_ciの違いは、文字比較と照合順序の違い。
両方とも半角大文字と半角小文字は同じ文字と判断するが、utf8mb4_general_ciはカタカナとひらがなを別文字として扱う。
いざとなればSQL文を発行するときにcollateで指定できるので、generalかunicodeかはそこまで神経質にならなくても良さそう。
基本はutf8mb4_general_ciでいい。
設定・確認方法
# less /etc/my.cnf.d/mariadb-server.cnf
[server]
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
設定変更したら再起動が必要
# systemctl restart mariadb
データベース変数を確認する(phpMyAdminでもOK)。
# mysql -p
> show variables like "%coll%";
> show variables like "%char%";
ちなみにWordPressのwp-config.phpにあるDB_COLLATEは設定しなくてもデータベースのデフォルト値を取得して設定する。