システム開発ブログ

流通システム部

MySQL

データベース

MySQL:既定の文字コード以外の文字コードでデータ出力

MySQLでdefault-character-set で指定してある文字コード以外の文字コードで
テキストファイル出力をする処理を行いました。

もとはと言えば、IE7でテキストファイルをリダイレクト表示した際に、
ファイル自体がUTF-8であっても自動判別でShift-JISで表示されてしまい、
文字化けを起こしていたため、急遽テキストファイルはShift-JISで出力するよう
変更したいがためでした。

今回は元々あるワークテーブルにためていったデータを出力するという方式が
既に決まっていたため、まず、出力するためのワークテーブルのCHARSETを
Shift-JISに変更しました。
こちらはCreate Tableで指定することができます。

CREATE TABLE WorkTable (
KeyCD int not null
, MsgStr varchar(1000)
, PRIMARY KEY ( KeyCD )
) CHARACTER SET sjis COLLATE sjis_japanese_ci type=InnoDB;


次はワークへ追加するときに文字列項目を変換します。

INSERT INTO WorkTable
( KeyCD
, MsgStr
)
SELECT KeyCD
, CONVERT('出力したいテキスト' USING sjis) AS MsgStr
FROM TargetTable;


テーブルに追加されたデータをテキストファイルに出力します。

SELECT MsgStr INTO OUTFILE 'C:\Temp\WorkFile.txt'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
FROM WorkTable;


出来上がったファイルをリダイレクト表示すると、Shift-JISで文字化けなく表示できました。

システム周りのお悩みを解決します

まずは無料ダウンロード

この記事に関連する記事の一覧


システム開発ブログ

Twitterでilovex_officialをフォローしてください

カテゴリー

以前の部署別ブログ

ページのトップ