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

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

ただいまの
回答率

88.60%

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

解決済

回答 5

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 3,127

gomakasu423

score 25

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

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

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

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


chrasetの変更は出来ました

コード
MariaDB [nyuumon]> SHOW VARIABLES LIKE "chara%";
+--------------------------+--------------------------------+
| Variable_name            | Value                          |
+--------------------------+--------------------------------+
| character_set_client     | utf8                           |
| character_set_connection | utf8                           |
| character_set_database   | utf8                           |
| character_set_filesystem | binary                         |
| character_set_results    | utf8                           |
| character_set_server     | utf8                           |
| character_set_system     | utf8                           |
| character_sets_dir       | C:\xampp\mysql\share\charsets\ |
+--------------------------+--------------------------------+```  



他に何が悪いのかわからないのでご教授下さいますと幸いです。  
よろしくお願いいたします。  

SQL

create table tbl_employee (     code        INTEGER     NOT NULL PRIMARY KEY,     name        VARCHAR(40),     birthday    DATE,     dpt_code    INTEGER     NOT NULL,     post_code   INTEGER,     manager     INTEGER,     FOREIGN KEY(dpt_code) REFERENCES tbl_department(code),     FOREIGN KEY(post_code) REFERENCES tbl_post(code)

insert into tbl_employee values (101,'鈴木一郎','1972-02-01',10,3,NULL); insert into tbl_employee values (102,'佐藤栄作','1974-09-09',20,4,101); insert into tbl_employee values (103,'山田花子','1976-05-21',10,4,101); insert into tbl_employee values (104,'田中達也','1978-12-04',30,NULL,102); insert into tbl_employee values (105,'高橋和子','1980-07-14',30,NULL,103); ); ```

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • Orlofsky

    2018/10/20 21:57

    URLは https://teratail.com/help#about-markdown の[リンク]を使ってください。

    キャンセル

  • Orlofsky

    2018/10/20 21:58

    コードはキャプチャではなく、 https://teratail.com/help#about-markdown の[コードを入力]を使ってください。

    キャンセル

  • Orlofsky

    2018/10/20 21:59

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

    キャンセル

  • seastar3

    2018/10/20 22:05

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

    キャンセル

回答 5

checkベストアンサー

+2

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

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/10/23 20:31

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

    キャンセル

0

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/10/21 10:38

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

    ご面倒でございますがよろしくお願いいたします。

    キャンセル

0

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/10/21 10:31

    ご回答いただきましてありがとうございます。
    utf8→utf8mb4の変更の件了解いたしました。

    参照URLを拝見したところmy.cnfを修正するとのことですが
    ファイルが見当たらないのですがどうしたらよろしいでしょうか。
    ご面倒さまでございますがご教授よろしくお願いいたします。

    キャンセル

  • 2018/10/21 19:45

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

    キャンセル

  • 2018/10/23 15:10

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

    キャンセル

  • 2018/10/23 20:30

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

    キャンセル

0

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

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

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

show create table テーブル名

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

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


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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/10/23 14:51

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

    キャンセル

  • 2018/10/23 15:12

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

    キャンセル

  • 2018/10/23 20:27

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

    キャンセル

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

  • ただいまの回答率 88.60%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る