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

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

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

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

解決済

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

matukaze
matukaze

総合スコア15

MySQL

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

2回答

0グッド

0クリップ

24995閲覧

投稿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\

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

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

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

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

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

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

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

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

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

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

回答2

3

ベストアンサー

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

teturousan, Taka2401, matukaze👍を押しています

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

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

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

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

回答へのコメント

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にさせて頂きます!

1

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

投稿2017/05/10 01:44

yambejp

総合スコア108937

miyahan👍を押しています

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

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

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

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

回答へのコメント

matukaze

2017/05/10 05:51

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

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

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

MySQL

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