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

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

新規登録して質問してみよう
ただいま回答率
85.37%
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などのソフトウェアやライブラリモジュールなどを利用することが可能です。

Q&A

解決済

4回答

34188閲覧

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

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などのソフトウェアやライブラリモジュールなどを利用することが可能です。

0グッド

1クリップ

投稿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)
です。不足があればご指摘ください。

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

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

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

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

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

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になることを確認して保存しました。
guest

回答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

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

0

ベストアンサー

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

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

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

投稿2016/06/12 12:43

kaz.Suenaga

総合スコア2037

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

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

Naoki_Tsuchi

2016/06/12 13:08

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

0

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

投稿2016/06/12 12:31

A-pZ

総合スコア12011

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

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

Naoki_Tsuchi

2016/06/12 12:50

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問