数据解释入Mysql时遇到的问题一例

将分类数据导入数据库,用perl写脚本,提取相关的信息,然后根据数据表,生成dmp格式,入库

SET NAMES 'utf8';
LOAD DATA INFILE 'E:/project/fenlei.dmp.txt'
INTO TABLE wiki_category
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n';
报错:
ERROR 1366 (HY000): Incorrect string value: ‘\xB9\xFA\xBC\xD2\xBB\xFA…’ for column ‘name’ at row 1
我以为是mysql load命名问题,后来网上搜索,得知是文件本身的编码是否是urf8格式,我如梦方醒,这个问题我遇到的太多了,用记事本带开,另存为urf-8格式,结果还是错
ERROR 1366 (HY000): Incorrect integer value: ‘锘?1’ for column ‘cid’ at row 1
这个我也非常熟悉,文档开头,表示文档的编码,用UltraEdit打开,文件的开始就是:锘?1,删除,再执行:又错:
ERROR 1062 (23000): Duplicate entry ‘1’ for key 1
主键重复,删除时,文档的内容也被删除,修改正确,再入,终于ok
Query OK, 2240 rows affected (0.03 sec)
Records: 2240  Deleted: 0  Skipped: 0  Warnings: 0
 
问题根源:perl生产的文档不是urf8编码的,
《问》:perl生产文件时,如何指定其编码?

发表评论

电子邮件地址不会被公开。 必填项已用*标注

请启用Javascript,以完成验证!