CSV文件到MySQL表,字符集编码问题
我正在尝试将 CSV 文件加载到 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 :(
我无法更改文件的编码。有办法替换错误的字符吗?
提前谢谢:)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试将 CSV 加载到 php 中,按照 utf8_encode >链接,然后运行插入到您的表中。这对你有用吗? (无论如何,这可能会更好,因为您可以通过这种方式对 CSV 输入进行消毒并防止数据库注入)
Try loading the CSV into php, running
utf8_encode
as per link, and then running an insert into your table. Does that work for you? (This might be better anyways because you can sterilize your CSV inputs this way and prevent DB injection)