1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

INTO OUTFILE...CHARACTER SETで指定しても文字化けが起こる現象

Last updated at Posted at 2019-03-19

##発生条件
mariaDBにて、INTO OUTFILE...CHARACTER SETでcsvファイルを落とした時に、csvファイルの先頭行に列タイトルを付けるためにUNIONを用いてcsvファイルを出力する事がある。

・列の先頭に列名を入れるためにUNIONで結合
・結合する列にSUM等の集合関数を用いる
上記2つの条件で列名に文字化けが発生する。

SAMPLE.sql
SELECT '重量' 
UNION
SELECT SUM(JYURYO)
INTO OUTFILE 'D:\\\SAMPLE.csv'
CHARACTER SET SJIS
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
FROM T_SAMPLE

上記のように処理した場合、列タイトル重量が文字化けする。
T_SAMPLEのデータは文字化けしない)

で、集合関数であるSUM()を外すと、文字化けはしない……。

確認事項

mariaDBの文字コードの確認

show variables like "chara%";

結果

Variable_name Value
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

下手に弄ると他に影響しそうなので変更せず。

対応策

担当者に平謝りしてタイトルを英字にした。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?