0

好吧,这是我的错觉。我有一个用 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 转换为不同的编码以匹配表格,但没有成功。

谢谢

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

(不是 100% 确定正确的输入描述是“UCS-2BE”,可能会有一些变化。请仔细检查 iconv 文档)

于 2011-04-20T19:50:50.263 回答