【问题标题】:MySQL incorrect ineger value (encoding)MySQL 不正确的整数值(编码)
【发布时间】:2011-04-20 15:01:30
【问题描述】:

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

谢谢

【问题讨论】:

  • 您是否尝试在文件中指定正确的整数值? ÿþ1 绝不是一个合适的整数值。
  • 第一个字符是整数。不确定 ÿþ1 来自哪里。

标签: mysql character-encoding android-1.5-cupcake ucs2


【解决方案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 文档)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-04
    相关资源
    最近更新 更多