SQL错误:编码的无效字节序列" UTF8":0x00

时间:2014-12-24 12:46:44

标签: regex perl sed

我正在运行SQL程序,我收到此错误

CONTEXT:  COPY qc_v1_ships_1854, line 6383 at load_QC_tables.pl line 86.
DBD::Pg::db do failed: ERROR:  invalid byte sequence for encoding "UTF8": 0x00

当我查看我尝试上传到数据库的文件时,有问题的行有一个<nul>字符

   465490013905000000 | NIGHTING_2_SAM<nul> |    5 |    3 |   -1 |    1   

我认为是问题所在。但是当我跑步时

sed -i 's/\0x00/ /g' *.dat
没什么变化的。有什么帮助吗?

由于

1 个答案:

答案 0 :(得分:2)

sed正则表达式模式中,\0仅为0。你想要

sed -i 's/\x00/ /g' *.dat

或者既然你已经在使用Perl,那么Perl等价物就是

perl -i -pe's/\x00/ /g' *.dat

更快:

perl -i -pe'tr/\x00/ /' *.dat