こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、11年目エンジニアです。
phpMyAdminで日本語のデータを挿入したとき
1 |
Warning: #1366 Incorrect string value: |
と警告が表示され、挿入した日本語のデータが
??と文字化けで表示されてしまったときの原因と解決策をお伝えします。
前提:実施している環境
この記事では、以下の環境で行っています。
OS | Windows10 |
---|---|
XAMPPのバージョン | 8.0.3 |
文字化けしてしまった原因
日本語が文字化けしてしまった原因は、テーブルの照合順序です。
文字化けしたデータがあるテーブルを選択し、上のバーの【構造】を選択します。
テーブルの構造が表示されます。
文字化けしている【name】カラムを確認すると、照合順序が【latin1_swedish_ci】となっています。
これが原因です。
latin1は、ラテン文字の文字コードです。
そのため日本語を扱うことができず、文字化けしてしまいました。
文字化けを解決する方法
文字化けを解決する方法は照合順序を修正することです。
カラムを変更するためには
- 変更したいカラムにチェック
- テーブルの下にある【変更】を押す
または、変更したいカラムの行にある【変更】を押します。
指定したカラムの設定が変更できる画面に変わります。
ここでカラムの照合順序を変更します。
照合順序を選択するとドロップダウンリストが表示されます。
MySQLのデフォルトである【utf8_general_ci】を選択します。
照合順序の修正が完了したら、【保存する】ボタンを押します。
下記画像のように、「正常に変更されました。」とメッセージがあれば無事変更できています。
テーブルの修正はできましたが、文字化けとなっているデータを修復することはできません。
そのため文字化けとなっているデータは削除し、再度挿入する必要があります。
データの削除と挿入については、こちらの記事をご参考ください。
文字化けのデータを削除し、再度日本語のデータを挿入すると、今度は文字化けすることなく挿入することができました。
まとめ:日本語が文字化けしたら照合順序を確認してみよう
以上がphpMyAdminで挿入した日本語のデータが文字化けしたときの解決策でした。
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント