CSV导出时,含有逗号/减号等特殊字符造成的问题 您所在的位置:网站首页 表格中带逗号的数值不求和怎么办 CSV导出时,含有逗号/减号等特殊字符造成的问题

CSV导出时,含有逗号/减号等特殊字符造成的问题

2024-07-15 12:16| 来源: 网络整理| 查看: 265

背景

今天运营的同事来找我们核对数据,发现我们后台导出的用户列表不如上游数据方全,但是我们确实是每天同步另加实时同步来确保双方数据一致,这让我很困惑呀,,经过一番定向查找,发现少的这一批医生,我们数据库中也是有的,只是导出的csv中发现,唯一标识竟然混乱了,如下图所示: 在这里插入图片描述 原来如此,是因为这个字段中有符号减号(-)造成的

定位原因并解决

CSV : Comma Separate Values

逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号)。

“CSV”并不是一种单一的、定义明确的格式(尽管RFC 4180有一个被通常使用的定义)。因此在实践中,术语“CSV”泛指具有以下特征的任何文件:

纯文本,使用某个字符集,比如ASCII、Unicode、EBCDIC或GB2312; 由记录组成(典型的是每行一条记录);每条记录被分隔符分隔为字段(典型分隔符有逗号、分号或制表符;有时分隔符可以包括可选的空格);每条记录都有同样的字段序列。

而造成乱码的情况就是因为我的值中包含分隔符减号

解决方案:

你可以使用xlsx导出数据,应该不会有这种问题

字段中包含有逗号,该字段必须用双引号括起来

字段中包含有换行符,该字段必须用双引号括起来

字段前后包含有空格,该字段必须用双引号括起来

字段中的双引号用两个双引号表示

字段中如果有双引号,该字段必须用双引号括起来 第一条记录,可以是字段名

而我这种,数值中包含减号的,只要强制转为字符串就好,具体可以是:

foreach ($doctors as $k => $v) { $v->医生大脑ID = $v->医生大脑ID."\t"; $v->医生u_id = $v->医生u_id."\n"; //头部 if ($i == 0 && $k == 0) { fputcsv($fp, array_keys((array)$v)); } fputcsv($fp, (array)$v); }

使用

\t 或 \n

来强制转换为字符串即可,出来的数据就正常了哟



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有