🐥
utf8とutf8mb4のちがい
結論
utf8は文字を1〜3バイトで表現する。
utf8mb4は文字を1〜4バイトで表現する。
例えば、一部の絵文字(✊とか)は4バイトなので、 utf8にするとDBへの保存時にエラー起きるらしい。
逆にutf8mb4にしておけば✊のような4バイト文字も保存できます。
Laravelのマイグレーションファイルにおいては以下のように書いて指定できる
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
# ここ!
$table->string('name', 100)->collate('utf8mb4_general_ci');
$table->string('email', 100)->unique()->comment('メールアドレス');
$table->string('password')->comment('パスワード');
$table->timestamps();
});
}
参考
Discussion