LoginSignup
2
2

More than 1 year has passed since last update.

mysqlが一生文字化けしていたけど何とか解決した備忘録

Posted at

経緯

WEBアプリが開発してみたい!そうだ、ToDoアプリを作ろう!!
そう思い立ちネットの海を徘徊し、Express+mysqlの環境を構築していてぽちぽちやってみていたのですが…
キャプチャ1.PNG

なんか一生エラー吐くじゃんウケるぅ…。と半泣きになっていたのがやっと解決したのでメモ書き程度に置いておきます。

環境
・Windows
・mysql 5.7

スクショを取っていなかったので前半画像ないです。すみません。

DBに登録をしようと日本語を入力しても反映されない。

色々試していたところ、半角英数字は問題なくDBに登録されていた様子。
エラーコードをぐぐってみたところ、やっぱりと言うか何と言うか、日本語の入力が一切受け付けられていなかったようです。

原因:mysqlの文字コードが日本語非対応だったから。

C:\ProgramData\MySQL\MySQL Server 5.7に格納されてるmy.iniを編集。

[mysqldump]
default-character-set = utf8mb4

[mysqld]
character-set-server=utf8mb4
skip-character-set-client-handshake
default-storage-engine=INNODB

色々試したけれど、上記を追記してみたところ、エラーが消えました。

文字化け、襲来

日本語の入力をしてもエラーが出ない!やったー!と思ったのもつかの間…。
キャプチャ2.PNG

ばちくそに文字化けしとるやんけェ…。

何が起きているんだと調べたところ、DB側の文字コードとコマンドプロンプトの表示の文字コードが一致していない為に発生している模様。
なるほど確かに…そりゃ化けますね。

コマンドプロンプトの文字コードを確認します。
コマンドchcpを叩く。
キャプチャ3.PNG

932…って何?
キャプチャ4.PNG

左上のウィンドウの枠のところで右クリック→プロパティの「現在のコードページ」で文字コードを確認出来ます。
キャプチャ5.PNG

現在のDB側の文字コードは「UTF-8」、対するコマンドプロンプト側は「Shift-JIS」
このずれが文字化けの原因なので、コマンドプロンプト側もUTF-8に揃えます。

コマンドchcp 65001を叩く。
キャプチャ6.PNG

文字コードがUTF-8になったことを確認。
キャプチャ7.PNG

日本語がちゃんと日本語で表示されてるー!!!!
私の心の叫びが入力されていますね。

これにて一件落着。
私の備忘録代わりに置いておきます…。

参考URL:
https://dev83.com/mysql-insertinto-error/
https://motomotosukiyaki.com/cant-input-japanese-in-mysql

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2