質問: こんにちは。 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\ どうぞ、よろしくお願いいたします。
回答: `SELECT ... INTO OUTFILE`文に`CHARACTER SET 'sjis'`という句を追加して、実行してみてください。 質問文に挙げられている SQL文なら、以下のようになります。 ``` SELECT 'テスト項目1' ,'テスト項目2' ,'テスト項目3' CHARACTER SET 'sjis' INTO OUTFILE "C:\\test\\test.csv" FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n' ; ``` > > Column values are written converted to the character set specified in the CHARACTER SET clause. > > > 修正 === `CHARACTER SET 'sjis'`は、`INTO OUTFILE`の後に指定する必要がありました。 ``` SELECT 'テスト項目1' ,'テスト項目2' ,'テスト項目3' INTO OUTFILE "C:\\test\\test.csv" CHARACTER SET 'sjis' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n' ; ```