2011-04-20 97 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文檔)