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

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

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

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

Q&A

解決済

2回答

28154閲覧

MYSQLのexport時に文字化けします。

matukaze

総合スコア15

MySQL

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

0グッド

0クリップ

投稿2017/05/10 01:04

こんにちは。
MYSQLにて文字化けで困っています。
分かる方いましたら意見を頂きたいです。

●やりたいこと
MYSQLにて、以下のSQLを実行し、結果をcsv出力する。
(csvに日本語のヘッダーを作成したい)
~~~~~~~~~~~
SELECT
'テスト項目1'
,'テスト項目2'
,'テスト項目3'
INTO OUTFILE "C:\test\test.csv"
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
;
~~~~~~~~~~~

●問題点
出力されたcsvファイルを開くと、文字化けしている

●質問
上記の内容ではテーブル参照はしていない状況ですが、
MYSQLのどこの文字コードを反映させればいいのでしょうか?
※sjisに設定したいです。

●参考
show variables like '%char%';

Variable_name Value
character_set_client utf8
character_set_connection utf8
character_set_database sjis
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8
character_sets_dir C:\Program Files\MySQL\MySQL Server 5.7\share\charsets\

どうぞ、よろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

SELECT ... INTO OUTFILE文にCHARACTER SET 'sjis'という句を追加して、実行してみてください。

質問文に挙げられている SQL文なら、以下のようになります。

sql

1SELECT 2'テスト項目1' 3,'テスト項目2' 4,'テスト項目3' 5CHARACTER SET 'sjis' 6INTO OUTFILE "C:\\test\\test.csv" 7FIELDS TERMINATED BY ',' 8LINES TERMINATED BY '\r\n' 9;

https://dev.mysql.com/doc/refman/5.7/en/select-into.html

Column values are written converted to the character set specified in the CHARACTER SET clause.

修正

CHARACTER SET 'sjis'は、INTO OUTFILEの後に指定する必要がありました。

sql

1SELECT 2'テスト項目1' 3,'テスト項目2' 4,'テスト項目3' 5INTO OUTFILE "C:\\test\\test.csv" 6CHARACTER SET 'sjis' 7FIELDS TERMINATED BY ',' 8LINES TERMINATED BY '\r\n' 9;

投稿2017/05/10 06:17

編集2017/05/10 06:34
KiyoshiMotoki

総合スコア4791

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

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

matukaze

2017/05/10 06:31

KiyoshiMotoki様 ご回答ありがとうございます。 ご回答のようにCHARACTER SET 'sjis'を追加して実行してみたところ、 syntax error になってしまいました・・・ いろいろ試してみます!
KiyoshiMotoki

2017/05/10 06:35

matukaze様 申し訳ありません、提示した SQL文に誤りがありましたので、修正したものを追記しました。 ご確認ください。
matukaze

2017/05/10 06:39

KiyoshiMotoki様 私も調べてみましてちょうど修正版のSQLで実行してみました。 すると文字化けが直っていました! 本当にありがとうございます。助かりました! BAにさせて頂きます!
guest

0

文字コードが違うなら出力後nkfなどで変換すればよいのでは?

投稿2017/05/10 01:44

yambejp

総合スコア114585

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

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

matukaze

2017/05/10 05:51

yambejp様 ご回答ありがとうございます。 確認してみたところtest.csvの文字コードはsjisになっていました。 MYSQL⇒csv出力時の文字コードが悪いのでしょうか? ちなみに記載忘れですが、環境はwindowsです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問