WEBシステム開発・デザイン制作などすべての作業を一貫してご提供しております。(大阪・東京近辺)

MySQLの接続照合順序(utf8_general_ci、utf8_unicode_ciなど)とは何?

MySQLデータベースにてUTF-8文字コードの使用は当たり前になってきた今日この頃
いままで何も考えずに、データベース、テーブルなどを作成して使っておられる方が多いのではないのでしょうか?

気になる項目が存在するのに気付きませんか?

そうズバリ「接続照合順序」です。

日頃何も考えずに使っていても問題ないのですが、
オープンソースのブログ、CMSなどのシステムをバージョンアップ、移行すると日本語が文字化けしたり、検索結果が正しく行われなくなったりと
意味不明な不具合に遭遇した経験はありませんか?

設定する値としては
utf8_general_ci を指定しておけば問題ありません。

正確性では utf8_unicode_ci、高速性では utf8_general_ciと言われていますが
いろいろ試してシステムに一番あったものを使えばいいと思います。

参考までに
UTF-8 Unicode (utf8) MySQL の接続照合順序:

utf8_bin
utf8_czech_ci
utf8_danish_ci
utf8_esperanto_ci
utf8_estonian_ci
utf8_general_ci
utf8_hungarian_ci
utf8_icelandic_ci
utf8_latvian_ci
utf8_lithuanian_ci
utf8_persian_ci
utf8_polish_ci
utf8_roman_ci
utf8_romanian_ci
utf8_slovak_ci
utf8_slovenian_ci
utf8_spanish2_ci
utf8_spanish_ci
utf8_swedish_ci
utf8_turkish_ci
utf8_unicode_ci