案.1 Excelの吐き出したcsvをそのまま利用する。
文字コード:sjis 改行:CR+LF
ファイルの文字セット sjis
部分インポート check
LOAD DATAするCSVにチェック
フィールドの区切り記号 ,
フィールドの囲み記号 Null
フィールドのエスケープ記号 Null
行の終端記号 \r\n
カラム名 Null
LOCALキーワードを使用する。 check
none EUC SJIS エンコーディングに変換する。 noneにcheck
全角カナに変換する。 check無し
化け化けですね。
案.2 Excelの吐き出したcsvをエディタにて文字コードを変換する。
文字コード:UTF-8 改行:LFとして読み込む
ファイルの文字セット utf-8
部分インポート check
LOAD DATAするCSVにチェック
フィールドの区切り記号 ,
フィールドの囲み記号 Null
フィールドのエスケープ記号 \
行の終端記号 \n
カラム名 Null
LOCALキーワードを使用する。 check
none EUC SJIS エンコーディングに変換する。 noneにcheck
全角カナに変換する。 check無し
因みに、この操作は
LOAD DATA LOCAL INFILE '/tmp/php1TFwt1' INTO TABLE `company_a` FIELDS TERMINATED BY ',' ESCAPED BY '\\' LINES TERMINATED BY '\n'
と変換される。特殊文字以外は通りますね。
案.3 Excelの吐き出したcsvをエディタにて文字コードを変換する。
文字コード:UTF-8 改行:LFとして読み込み、sjisに変換する。
ファイルの文字セット utf-8
部分インポート check
LOAD DATAするCSVにチェック
フィールドの区切り記号 ,
フィールドの囲み記号 Null
フィールドのエスケープ記号 \
行の終端記号 \n
カラム名 Null
LOCALキーワードを使用する。 check
none EUC SJIS エンコーディングに変換する。 SJISにcheck
全角カナに変換する。 check無し
因みに、この操作は
特殊文字以外は通り、SJISで格納されてるのに、ODBC経由Access,Excelでは文字化けします。
なんで?
MySQL4.0リファレンスマニュアル6.4.8. LOAD DATA INFILE 構文より
LOCAL が指定されていると、クライアントホスト上のクライアントプログラムによってファイルが読み取られ、サーバに送られます。LOCAL が指定されていない場合、ファイルはサーバホスト上に存在しなければならず、サーバによって直接読み取られなければなりません(LOCAL は MySQL バージョン 3.22.6 以降で使用できます)。
0 件のコメント:
コメントを投稿