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

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

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

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

UTF-8

UTF-8は8ビット符号単位の文字符号化形式及び文字符号化スキームです。データ交換方式、ファイル形式としては、一般的にUTF-8が使われる傾向があります。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

解決済

MySQLで文字コード設定をすべてUTF-8にしても、文字化けしてしまいます。

Naoki_Tsuchi
Naoki_Tsuchi

総合スコア15

MySQL

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

UTF-8

UTF-8は8ビット符号単位の文字符号化形式及び文字符号化スキームです。データ交換方式、ファイル形式としては、一般的にUTF-8が使われる傾向があります。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

4回答

0グッド

1クリップ

30993閲覧

投稿2016/06/12 12:09

編集2016/06/12 12:48

###前提・実現したいこと
XAMPPのmysql(MariaDB)に、CSVファイルのデータを取り込みたいです。
しかし日本語のデータが文字化けしてしまいます。

環境は
Windows7
XAMPP v3.2.2
mysql(MariaDB)
です。不足があればご指摘ください。

###発生している問題・エラーメッセージ

csvデータもutf8、mysql側の設定もすべてutf8なのに、日本語のデータがmysqlのテーブル上で文字化けしてしまいます。

###該当のソースコード
my.iniの設定は以下のとおりです。

[client] # password = your_password port = 3306 socket = "C:/xampp/mysql/mysql.sock" default-character-set=utf8 [mysqld] port= 3306 socket = "C:/xampp/mysql/mysql.sock" basedir = "C:/xampp/mysql" tmpdir = "C:/xampp/tmp" datadir = "C:/xampp/mysql/data" pid_file = "mysql.pid" # enable-named-pipe key_buffer = 16M max_allowed_packet = 1M sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M log_error = "mysql_error.log" character-set-server=utf8 #default-character-set=utf8 init-connect=SET NAMES utf8 collation_server=utf8_general_ci skip-character-set-client-handshake [mysqldump] quick max_allowed_packet = 16M default-character-set = utf8 character_set_server=utf8 [mysql] no-auto-rehash # Remove the next comment character if you are not familiar with SQL #safe-updates default-character-set = utf8 ## UTF 8 Settings #init-connect=SET NAMES utf8 #collation_server=utf8_general_ci character_set_server=utf8 #skip-character-set-client-handshake character_sets-dir="C:/xampp/mysql/share/charsets"

###試したこと
「xamppの文字化け回避メモ」
http://qiita.com/guzuri/items/643c1311224e8d482278
「MySQLで文字化けしたときの対処法」
http://qiita.com/WizowozY/items/5d7224be92aa8364a42a

以上のサイトに書いてあることはすべて試したつもりです。

mysql上で

show variables like "chara%";

と入力すると以下のとおりの結果が出ます。
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_set_dir:C:\xampp\mysql\share\charsets\

上のとおり、すべてutf8に設定されているのですが、どこで文字化けが起きてしまっているのでしょうか…

###補足情報(言語/FW/ツール等のバージョンなど)
環境は
Windows7
XAMPP v3.2.2
mysql(MariaDB)
です。不足があればご指摘ください。

以下のような質問にはグッドを送りましょう

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

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

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

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

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

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

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

適切な質問に修正を依頼しましょう。

kaz.Suenaga

2016/06/12 12:15

CSVファイルの取り込み方法はどういったものでしょうか。
Naoki_Tsuchi

2016/06/12 12:19

返信ありがとうございます。 c:/xampp/mysql/data/sampledb(データベース名) に.csvファイルを入れて、 LOAD DATA INFILE "T01Prefecture.csv" INTO TABLE t01 FIELDS TERMINATED BY "," LINES TERMINATED BY "\r\n"; で取り込んでいます。
kaz.Suenaga

2016/06/12 12:25 編集

もう1点、文字化けはどのような化け方をするのでしょうか。 あと、CSVファイルがUTF-8であることはどうやって確認していますか。
Naoki_Tsuchi

2016/06/12 12:36

化け方については説明しづらいのですが、難しい漢字がたくさんならぶ感じです。 また、csvファイルに関しては、 「プログラムから開く」→メモ帳→名前をつけて保存→文字コードの欄がUTF-8になることを確認して保存しました。

回答4

0

MS Excel の文字コードは Shift-JIS ですのでご注意ください。

投稿2016/06/12 13:26

pac894398

総合スコア429

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

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

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

このような回答には修正を依頼しましょう。

0

この状況とあった解決方法かはわからないですが、mysqlのutf8は4バイト文字に対応していないため絵文字などを入れると文字化けします。
この場合、文字コードをutf8mb4として扱うと解決します。
参考1:utf8m4について
参考2:MySQLの具体的な設定について

投稿2016/06/12 12:48

inabajunmr

総合スコア29

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

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

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

このような回答には修正を依頼しましょう。

回答へのコメント

Naoki_Tsuchi

2016/06/12 13:10

ありがとうございます。参考にさせていただきます。 解決したら連絡させていただきます!

0

ベストアンサー

メモ帳の場合、UTF-8を選択しても「BOM」と呼ばれるデータがついた状態のUTF-8になっているかと思います。

何か別のテキストエディタを使って、UTF-8(BOMなし)改行コードLFと言われる形式で保存したうえで取り込めば、正常に取り込まれるのではないでしょうか。

参考) http://q.hatena.ne.jp/1269678207

投稿2016/06/12 12:43

kaz.Suenaga

総合スコア1999

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

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

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

このような回答には修正を依頼しましょう。

回答へのコメント

Naoki_Tsuchi

2016/06/12 13:08

返信ありがとうございます。 いま、やってみています。BOM有り無しは確かに大きく影響してそうです。解決したらまた連絡させていただきます!

0

character_set_databaseが記載されていませんが、おそらくcharacter_set_databaseをutf-8にすれば解決できるかと思いますのでお試しください。

投稿2016/06/12 12:31

A-pZ

総合スコア12003

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

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

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

このような回答には修正を依頼しましょう。

回答へのコメント

Naoki_Tsuchi

2016/06/12 12:50

すみません、character_set_databaseもutf8です。 質問文で誤記をしてしまっていました。

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

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

MySQL

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

UTF-8

UTF-8は8ビット符号単位の文字符号化形式及び文字符号化スキームです。データ交換方式、ファイル形式としては、一般的にUTF-8が使われる傾向があります。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。