質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

解決済

5回答

2612閲覧

MysqlをXAMPPで動かしたいが日本語が文字化けして直らない

gomakasu423

総合スコア31

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

0クリップ

投稿2018/10/20 12:43

編集2018/10/21 11:00

MysqlをXAMPPにて起動させたところ
日本語が文字化けしてしまいます。

やってみたことは[https://qiita.com/guzuri/items/643c1311224e8d482278]
に記載されている手順でmy.ini php.iniを編集しました。

結果はうまくいきませんでした

SQL

1コード 2MariaDB [nyuumon]> SELECT * FROM tbl_employee; 3+------+----------+------------+----------+-----------+---------+ 4| code | name | birthday | dpt_code | post_code | manager | 5+------+----------+------------+----------+-----------+---------+ 6| 101 | ???リ・?Y | 1972-02-01 | 10 | 3 | NULL | 7| 102 | ?????h?? | 1974-09-09 | 20 | 4 | 101 | 8| 103 | ?R?c?ヤ子 | 1976-05-21 | 10 | 4 | 101 | 9| 104 | ?c???B?? | 1978-12-04 | 30 | NULL | 102 | 10| 105 | ?????a?q | 1980-07-14 | 30 | NULL | 103 | 11+------+----------+------------+----------+-----------+---------+

chrasetの変更は出来ました

SQL

1コード 2MariaDB [nyuumon]> SHOW VARIABLES LIKE "chara%"; 3+--------------------------+--------------------------------+ 4| Variable_name | Value | 5+--------------------------+--------------------------------+ 6| character_set_client | utf8 | 7| character_set_connection | utf8 | 8| character_set_database | utf8 | 9| character_set_filesystem | binary | 10| character_set_results | utf8 | 11| character_set_server | utf8 | 12| character_set_system | utf8 | 13| character_sets_dir | C:\xampp\mysql\share\charsets\ | 14+--------------------------+--------------------------------+``` 15 16 17 18他に何が悪いのかわからないのでご教授下さいますと幸いです。 19よろしくお願いいたします。 20 21```SQL 22 23create table tbl_employee ( 24 code INTEGER NOT NULL PRIMARY KEY, 25 name VARCHAR(40), 26 birthday DATE, 27 dpt_code INTEGER NOT NULL, 28 post_code INTEGER, 29 manager INTEGER, 30 FOREIGN KEY(dpt_code) REFERENCES tbl_department(code), 31 FOREIGN KEY(post_code) REFERENCES tbl_post(code) 32 33insert into tbl_employee values (101,'鈴木一郎','1972-02-01',10,3,NULL); 34insert into tbl_employee values (102,'佐藤栄作','1974-09-09',20,4,101); 35insert into tbl_employee values (103,'山田花子','1976-05-21',10,4,101); 36insert into tbl_employee values (104,'田中達也','1978-12-04',30,NULL,102); 37insert into tbl_employee values (105,'高橋和子','1980-07-14',30,NULL,103); 38);

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Orlofsky

2018/10/20 12:59

質問にCREATE TABLEとINSERTを載せた方が適切なコメントが付き易いです。
seastar3

2018/10/20 13:05

nameフィールドに流し込んだ日本語文字列がUTF-8だったのか、Shift-Jisだったのかが気になります。正しくUTF-8を流し込めていれば文字化けしないのではないでしょうか。
guest

回答5

0

ベストアンサー

XAMPPのShellはShiftJISのため文字コードのミスマッチが発生しています
Shellにてコマンド操作する際には下記コマンドを実行し環境にあわせるとよいです

SQL

1MariaDB [nyuumon]> SET character_set_results = sjis; 2MariaDB [nyuumon]> SET character_set_client = sjis;

結果は
1xx番台がutf8のままでinsertしたもの
2xx番台がsjisにSETしたあとにinsertしたもの
となりました

SQL

1MariaDB [nyuumon]> SELECT * FROM tbl_employee; 2+------+----------+------------+----------+-----------+---------+ 3| code | name | birthday | dpt_code | post_code | manager | 4+------+----------+------------+----------+-----------+---------+ 5| 101 | ??????Y | 1972-02-01 | 10 | 3 | NULL | 6| 102 | ?????h?? | 1974-09-09 | 20 | 4 | 101 | 7| 103 | ?R?c??q | 1976-05-21 | 10 | 4 | 101 | 8| 104 | ?c???B?? | 1978-12-04 | 30 | NULL | 102 | 9| 105 | ?????a?q | 1980-07-14 | 30 | NULL | 103 | 10| 201 | 鈴木一郎 | 1972-02-01 | 10 | 3 | NULL | 11| 202 | 佐藤栄作 | 1974-09-09 | 20 | 4 | 101 | 12| 203 | 山田花子 | 1976-05-21 | 10 | 4 | 101 | 13| 204 | 田中達也 | 1978-12-04 | 30 | NULL | 102 | 14| 205 | 高橋和子 | 1980-07-14 | 30 | NULL | 103 | 15+------+----------+------------+----------+-----------+---------+ 1610 rows in set (0.00 sec) 17

投稿2018/10/23 07:30

yukky1201

総合スコア2751

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gomakasu423

2018/10/23 11:31

ありがとうございます。文字化けが解消いたしました
guest

0

念のためにそのテーブルの文字コードを確認されてみてはいかがでしょうか。

正しいやり方を実は知らないのですが、いつも私は↓で確認しています。

show create table テーブル名

指定したテーブル名のcreate文が出てくるので

CREATE TABLE `テーブル名` ( : : ) ENGINE=InnoDB DEFAULT CHARSET=utf8

この末尾のCHARSETで確認しています。

投稿2018/10/23 05:21

SystemAjisai

総合スコア171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gomakasu423

2018/10/23 05:51

ご回答いただきましてありがとうございます。 確認したところ下記のようになっておりました ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci 何が悪いのかわかりませんのでアドバイスをいただけると幸いです。
SystemAjisai

2018/10/23 06:12

以前私も同じ現象に悩まされた際、結局キレてテーブルを全部消してDBを再起動しなおして作り直したら直りました。 その時、知人から「テーブルの文字コードが違ったんだろ、こうやって確認するんだぞ」と言われたことがあったので、それを回答してみた次第です。 テーブルもutf8だとこれが原因ではないですね。。。 後はコメントに書かれている方がいる通り、登録している側との文字コードが一致しているかぐらいしか思いつかないです。 お力に慣れず申し訳ないです。。。
gomakasu423

2018/10/23 11:27

大変お手数をおかけいたしました ありがとうございます。
guest

0

phpmyAdminは、XAMPP環境でWebページを介してmysqlを簡単に操作する便利なユーティリティです。
XAMPPのphpMyAdminでMySQLデータベースの作成 - XAMPPの使い方のようなApacheでローカルサーバを起動してからURLを指定して呼び出します。
XAMPP Control Panel は表示できていますか?
いろいろなconfig設定も使うことがありますから、馴れていきましょう。

投稿2018/10/21 01:52

seastar3

総合スコア2285

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

utf8は古いキャラクタセットです。JIS第4水準に追加されたutf8時に4Byteになる約400漢字が非対応です。新しいキャラクタセットのutf8mb4を使用してください。
MySQL utf8からutf8mb4への変換

投稿2018/10/20 18:44

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gomakasu423

2018/10/21 01:31

ご回答いただきましてありがとうございます。 utf8→utf8mb4の変更の件了解いたしました。 参照URLを拝見したところmy.cnfを修正するとのことですが ファイルが見当たらないのですがどうしたらよろしいでしょうか。 ご面倒さまでございますがご教授よろしくお願いいたします。
Orlofsky

2018/10/21 10:45

>my.cnf 存在しない でググってください。 質問の修正依頼にも書いたように修正すると適切なコメントが付き易いです。
yukky1201

2018/10/23 06:10

XAMPPですのでmy.iniが対象ファイルとなります デフォルトインストールされていれば、C:\xampp\mysql\binディレクトリ内にありますね
gomakasu423

2018/10/23 11:30

ありがとうございます。 my.iniは修正いたしましたが いまだに文字化けであります。 お手数をおかけしました。
guest

0

とりあえず、phpmyadmin上でテーブル加工できるか試してみてはどうでしょうか。

投稿2018/10/20 13:06

seastar3

総合スコア2285

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gomakasu423

2018/10/21 01:38

ご回答いただきまして誠にありがとうございます。 大変申し訳ございませんが参照のURLなどを送っていただけますと助かります。 当方、まったくの素人でしてアドヴァイスの意図がつかめませんでした。 ご面倒でございますがよろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問