プログラム

さくらの鯖でmysqlに絵文字突っ込んだら絵文字以降切り捨て対策

さくら鯖でって書いたけどどこでも同じです!!!!!!!!
インターネット初心者だからむずかしかった

勉強不足で本日知った、「mysqlのテーブルに絵文字が挿入された場合にその絵文字以降が切り捨てられる問題」
いろいろ調べてたけどこれが原因か〜〜〜〜って感じでした
以前動かしてるサービスでメールでは入ってるけど、テーブルに書き込まれてないって現象があったのでスッキリしたところです
ただこれ結構めんどくさいし、スクリプトのみで変更しようと横着したけどやっぱりダメだったよ

全部phpmyadminあるならそっち使ったほうがいいです…
くそだるい

今の文字コードを確認する

SHOW VARIABLES LIKE "char%"

データベースの文字コードを変更する

ALTER DATABASE [db_name] DEFAULT CHARACTER SET utf8mb4

%e3%83%86%e3%82%99%e3%83%bc%e3%82%bf%e3%83%98%e3%82%99%e3%83%bc%e3%82%b9

 

テーブルの文字コードを変更する

ALTER TABLE [table_name] DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci

%e3%83%86%e3%83%bc%e3%83%95%e3%82%99%e3%83%ab

 

フィールドの文字コードを変更

ALTER TABLE [table_name] CHANGE [field_name] [new_field_name] [field_type] CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci

%e3%83%95%e3%82%a3%e3%83%bc%e3%83%ab%e3%83%88%e3%82%99

それで、古いphpmyadminで見ると、
クライアント(データ取得側のスクリプト)の文字コードutf8だったりして、utf8mb4の文字がちゃんととれず文字化けして見えちゃうから気をつけて

知ったきっかけ
Joomla! 3.4まではUTF-8の4バイト文字を悪用して重複するログイン名が登録できた

コメントを残す

メールアドレスが公開されることはありません。

*