dポイントプレゼントキャンペーン実施中!

文字コードMS932(Windows-31J)のテキストファイル(CSVファイル)を、
MySQLのLOAD DATA INFILEでインポートしたところ、
漢字などの全角文字が文字化けしてしまいました。

その後、MySQL上で「show variables like 'character_set_database'」を
SQL実行したところ、「utf8」と表示された為、
試しに、
元のCSVファイル自体の文字コードを、
テキストエディタで「UTF-8」に変換したCSVファイルを、
MySQLのLOAD DATA INFILEでインポートしたところ、
うまくインポート出来ました。

そこで、ご質問内容ですが、
MySQLのLOAD DATA INFILEでインポートする際に、
文字コードMS932(Windows-31J)のテキストファイル(CSVファイル)を、
直接、文字コードUTF-8のテキストファイルとして、
読み込ませながらインポートするような方法が、
もしございましたら、ぜひ教えてください。

もし、それが無理でしたら、
上記の文字コード変換する方法として、
どのような方法があるかなどをアドバイスいただけましたら幸いです。

お世話になります
宜しくお願い致します。

A 回答 (1件)

お察しのとおり、LOAD DATAコマンドではcharacter_set_databaseが使用されます。

なので、

mysql> SET @@character_set_database = cp932;
mysql> LOAD DATA...

という風にコマンドを実行すれば、MS932の文字コードをLOAD DATAで取り込むことが出来ます。@@character_set_databaseはcp932ではなくbinaryでもOKです。

mysqlimportコマンドを使うと、文字コードを適宜変更してくれるので便利ですよ!
    • good
    • 1
この回答へのお礼

「hardgeek」様

お世話になっております。
おかげ様で無事にCSVファイル(MS932の文字コード)を、
MySQLテーブル(UTF-8の文字コード)へ
直接インポート出来ました。とても便利ですね。

本当に助かりました。
ありがとうございました。

お礼日時:2010/10/20 13:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す