php解析csv时,特定汉字会导致逗号识别不出来

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php解析csv时,特定汉字会导致逗号识别不出来相关的知识,希望对你有一定的参考价值。

php解析csv时,特定汉字会导致逗号识别不出来例如:

四川特种机械专用车有限公司,广汉市

用fgetcsv明明是两个字段,解析出来就只有一个字段,逗号被当做字符串的一部分,但是把里面的“专”字去掉,就没问题了。

四川特种机械用车有限公司,广汉市

就能解析出公司名和地区两个字段。
这是咋回事?

这个需要看下你具体实现的代码,因为特殊汉字导致分隔符“,”失效这种情况应该是没有的。

文档里面这个函数的用法是:

fgetcsv($handle, 1000, ",")

第一个参数是文件句柄,第二个参数是要截取的长度,第三个是分隔符。

你试一下把第二个参数的数字调大一些,看下是否还有问题。

追问

可能不是截取长度的问题,因为公司名更长的都能解析出来。

追答

我试了下你给的这段文字是可以正常解析的,建议再检查下代码是否还有不合理的地方或发下代码大家帮忙看一下

追问

这个问题确实很奇怪,我最后还是没解决,找了个变通的方法,在每个逗号前后都加个空格,解析出来的字符串再用trim函数把空格过滤掉。我做php六年了,一直都是通过csv导入数据,从未遇到过这种情况。不过还是感谢你的耐心回答。

参考技术A php版本的原因,我也刚解决,

以上是关于php解析csv时,特定汉字会导致逗号识别不出来的主要内容,如果未能解决你的问题,请参考以下文章

解决excel打开utf-8编码csv文件乱码的bug

excel打开csv 出现乱码怎么解决

PHP导出CSV格式文件因为导出数据中有英文逗号导致分列错误怎么处理

使用 awk 或 perl 从 CSV 中提取特定列(解析)

csv表格处理(下)--纯JS解析导入csv

基于 WeihanLi.Npoi 实现excel导入时纯汉字的日期转换