2011-04-20 81 views
0

好的,这里是我的delema。我有一个在UCS-2中编码的.rpt文件,基本上是由','分隔的两列。MySQL不正确的ineger值(编码)

我的查询是;

load data infile 'file_name' into table 

table_name fields terminated by ',' 

lines terminated by '\n'; 

该文本只是两个int列。我不断收到一个错误,指出: 错误代码:1366 不正确的整数值:在列的列“列1”ÿþ1“1

我试图创建表使用UCS-2默认排序规则还是一样问题。我尝试将.rpt转换为不同的编码以匹配表,但没有运气。

谢谢

+0

您是否尝试在文件中指定正确的整数值? ÿþ绝不是一个合适的整数值。 – 2011-04-20 15:56:56

+0

第一个字符是整数。不知道whereþ1从哪里来。 – Lexicon 2011-04-20 16:15:01

回答

1

加载数据infile可以输入除了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文档)