0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

cmdで文字化けするとき(Xampp/MySql)

Last updated at Posted at 2021-02-10

title: cmdで文字化けするとき(Xampp/MySql)
tags: MySQL cmd Windows xampp
author: RHsensei
slide: false

前提条件
MySqlのデータベースに接続でき、テーブルの作成等ができる。


###問題
MySqlのデータベースにcmdから操作をしている際に
日本語のみ文字化けしていることに気づきました。

#テーブル内容

+----+--------+----------------+---------+---------------------+
| id | number | title          | book_id | created_at          |
+----+--------+----------------+---------+---------------------+
|  1 |      1 | MySQL?ニ・      |       2 | 2021-02-10 15:17:19 |
|  2 |      2 | ?e?[?u???ニ・   |       2 | 2021-02-10 15:17:33 |
|  3 |      3 | CRUD?ニ・       |       2 | 2021-02-10 15:17:41 |
|  4 |      4 | RH?ニ・         |       2 | 2021-02-10 15:32:57 |
|  5 |      5 | RH?ニ・         |       2 | 2021-02-10 15:34:18 |
+----+--------+----------------+---------+---------------------+

##原因
発生原因が複数あり、切り分けが必要です。
文字コードが異なる場合に発生することが多く、以下の設定を確認しましょう。
① クライアント側(自分)、サーバー側(xammp上のMySqlサーバー)
② データベースの文字コード

##対応方法

文字コード変更の詳細は以下を参考にしてください。
Xamppの場合は、C:\xampp\mysql\binのmy.iniを変更します。

コマンドプロンプト自体の文字コードの変更
mysqlで文字コードをutf8にセットする


上記を試しても出来ない場合、
一時しのぎではありますが下記を参照して下さい。

今回の設定はcmdを閉じるとデフォルトの設定に戻ります。

まずはMySqlのデータベースにcmdから接続します。

以下のコマンドで、現在の文字コードを確認します。

SHOW VARIABLES LIKE 'char%';

#文字コード一覧

+--------------------------+----------------------------------------+
| Variable_name            | Value                                  |
+--------------------------+----------------------------------------+
| character_set_client     | utf8mb4                                |
| character_set_connection | utf8mb4                                |
| character_set_database   | utf8mb4                                |
| character_set_filesystem | binary                                 |
| character_set_results    | utf8mb4                                |
| character_set_server     | utf8mb4                                |
| character_set_system     | utf8                                   |
| character_sets_dir       | R:\Install\xampp\mysql\share\charsets\ |
+--------------------------+----------------------------------------+

以下で文字コードを「ShiftJIS」に変更します。

SET NAMES cp932;

既存のデータは変更されないため、新たにデータを追加する。
(データベースに追加したときの文字コードが反映する)

データベースの内容を確認。
##日本語が表示された!!

  ----+--------+-------------+---------+---------------------+
 | id | number | title       | book_id | created_at          |
  ----+--------+-------------+---------+---------------------+
 |  1 |      1 | MySQL???    |       2 | 2021-02-10 15:17:19 |
 |  2 |      2 | ?e?[?u????? |       2 | 2021-02-10 15:17:33 |
 |  3 |      3 | CRUD???     |       2 | 2021-02-10 15:17:41 |
 |  4 |      4 | RH???       |       2 | 2021-02-10 15:32:57 |
 |  5 |      5 | RH???       |       2 | 2021-02-10 15:34:18 |
+|  6 |      6 | RHについて   |       2 | 2021-02-10 15:46:45 | //文字コード変更後に追加
  ----+--------+-------------+---------+---------------------+

参考資料
Windowsコマンドプロンプト 文字コード設定

今回の設定はcmdを閉じるとデフォルトの設定に戻ります。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?