好吧,这是我的想法。我有一个用UCS-2编码的.rpt文件,基本上是两列,以“,”分隔。

我的查询是;

load data infile 'file_name' into table

 table_name fields terminated by ','

lines terminated by '\n';


文本只是两个int列。我不断收到错误消息:
错误代码:1366
不正确的整数值:第1行的“ column1”列为“ÿþ1”

我尝试使用usc-2默认排序规则创建表,并且仍然存在相同的问题。我尝试将.rpt转换为不同的编码以匹配表,但是没有运气。

谢谢

最佳答案

加载文件中的数据几乎可以输入UCS-2以外的任何内容。

来自http://dev.mysql.com/doc/refman/5.1/en/load-data.html


  注意无法加载使用ucs2字符集的数据文件。


(在页面下半部)

样本C代码将ucs-2转换为ascii

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


(不能100%确保正确的输入描述是“ UCS-2BE”,这可能有所不同。请仔细检查iconv文档)

10-05 23:09