Skip to content

Conversation

@Raka-loah
Copy link

原生的fgetcsv()对于双字节字符的处理有点bug,如果csv的中文字符没有强制通过双引号前后括起来(也就是Excel默认的保存格式)会导致部分逗号无法被fgetcsv正确识别导致一部分流量详单漏掉。
目前导出的流量轨迹内容似乎并没有半角逗号,直接explode可以解决问题。

在PHP 7.11测试通过。

@davidhoo
Copy link
Owner

谢谢!
fgetcsv 是区域敏感的,这个工具也确实只考虑 utf-8 的编码~ 好在 excel 导出的时候可以选择 utf-8 。
使用中没有遇到问题,可否把你说的不能正确识别的文件发我看看?

@Raka-loah
Copy link
Author

验证用流量轨迹文件,使用Excel 2016保存成CSV UTF-8(逗号分隔)之后,会导致读取出现问题,反而直接保存成GB2312的CSV可以正常使用。

输出结果类似这样:
输出结果

@davidhoo
Copy link
Owner

davidhoo commented May 9, 2017

抱歉,比较忙,才来得及测试~
我用你给我的文件直接运行输出是正确的。我找别人用 windows10 + php7 环境测试也是正确的。
我只有一个 windows xp 的虚拟机环境,没法装 php7 做测试。
这个应该还是编码问题,看下windows 下 bash 执行的编码环境是 utf-8 还是 gb2312 呢?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants