CSV文件到MySQL表,charset编码问题

时间:2011-04-19 22:45:46

标签: php mysql utf-8 iso-8859-1

我正在尝试将CS​​v文件加载到mysql表中,问题是CSV文件是'iso-8859-1'而我的数据库是'utf-8'。

我使用以下说明:

LOAD DATA INFILE 'file.csv' INTO TABLE edes_objetivos_aux CHARACTER SET latin1 FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '!EOR' IGNORE 1 LINES (tipo_movimiento,@objetivo_k,nombre,descripcion,metrica_k,acumulativo,heredable,fecha_creacion,usuario_propietario_k,meta,resultado,heredado,acumulativo,porcentaje_avance,fecha_programada,fecha_inicio,fecha_finalizada,porcentaje_padre,periodo) SET objetivo_k=md5(@objetivo_k)

在上面的例子中我使用'latin1',因为那是文件的编码,但是,有些字符不对,因为我的数据库是utf-8 :(

我无法更改文件的编码。有没有办法替换错误的字符?我该怎么办?

提前致谢:)

1 个答案:

答案 0 :(得分:0)

尝试将CS​​V加载到php中,按照link运行utf8_encode,然后在表格中运行插入。那对你有用吗? (这可能会更好,因为您可以通过这种方式对CSV输入进行消毒并防止DB注入)