0

さて、ここに私のデレマがあります。UCS-2でエンコードされ、基本的に「、」で区切られた2つの列である.rptファイルがあります。

私の質問は;

load data infile 'file_name' into table

 table_name fields terminated by ',' 

lines terminated by '\n';

テキストは単純に2つのint列です。次のようなエラーが発生し続けます:エラーコード:1366整数値が正しくありません:行1の列'column1'の'ÿþ1'

usc-2のデフォルトの照合を使用してテーブルを作成しようとしましたが、それでも同じ問題が発生します。運が悪かったので、テーブルに一致するように.rptを別のエンコーディングに変換しようとしました。

ありがとう

4

1 に答える 1

1

Load data infileは、UCS-2以外のほぼすべてを入力できます。

http://dev.mysql.com/doc/refman/5.1/en/load-data.htmlから

注ucs2文字セットを使用するデータファイルをロードすることはできません。

(ページの途中)

ucs-2をasciiに変換するためのサンプルCコード

for( i=0; i!=len; ++i) {
  if( (ucs2[i]>=0) && (ucs2[i]<127)) {
    ascii[i] = ucs2[i];
  }
  else {
    conversion_failed();
    ascii[i] = '\0';
  }
}

Linuxコマンドラインスクリプト

iconv -f UCS-2BE -t ascii oldfile > newfile

(正しい入力の説明が「UCS-2BE」であるかどうかは100%確実ではありません。バリエーションがある可能性があります。iconvのドキュメントを再確認してください)

于 2011-04-20T19:50:50.263 に答える