我有很多脚本从excel或csv导入数据。 99%的人都没事。
我有一个特定的字段 - 关键字 - 在导入时搞砸了。
示例:
我输入的字段 - >
Accelus,GRC,监管情报,政策管理,关系 风险,培训,审计,风险管理,合规管理,Accelus 合规经理,ACM,Accelus风险经理,ARM,政策经理, 世界检查,国家检查,IntegraScreen,审计 管理器,AutoAudit,电子学习,GRC00971
我得到的是什么 -
Accelus,GRC,监管情报,政策管理,关系 风险,培训,审计,风险管理,合规管理,Accelus 合规经理,ACM,Accelus风险经理,ARM,政策经理, World-Check,Country-Check,IntegraScreen,Au盻Ỵ盼
MySQL表是InnoDB / UTF8。我曾尝试将varchar和text用于字段,但结果完全相同。该文件是从服务器生成的,该服务器的数据库是UTF8(据称)。任何建议 - 这发生在很多行,并在我们的报告网站上终止最终用户的导出和查找脚本。
更新:我将这些字符放入谷歌并且它们是日语(如果我错了,请更正我)。所以我想,让我们打开excel,看看会发生什么。那么数据看起来很正常,但是当我将列格式更改为' text'在Excel中我只看到#####################作为坏行(仅适用于该列) - 注意7500中只有少数几个。所有这些行之前和之后的数据以及" bad"的其余部分排是很好的。这只是一栏。所以我想我正在处理一个编码问题,但字母看起来很正常。
答案 0 :(得分:1)
在Excel中,您无法将csv文件另存为utf-8 。它使用ANSI编码CSV文件。
您可以执行以下操作:
1)选择“另存为”
2)在“保存类型:”字段中,选择“Unicode 文字“。你将获得一个Unicode文件。(UCS-2 Little Endian)
3)使用Notepad ++,编码菜单/转换为没有BOM的UTF-8。
另一种方法是在实际csv转换之前将xslx转换为xls :
只有从xlsx格式保存为csv格式时,才会出现丢失的字符/截断问题。尝试先将xlsx文件保存到xls,然后再保存到csv。生成的csv仍然不是utf-8编码的,但可以使用文本编辑器(如notepad ++)轻松转换。
答案 1 :(得分:0)
尝试使用
在PHP中设置编码 header('Content-Type: text/html; charset=UTF-8');
在文件顶部