应用程序语言(PHP)导出csv文件乱码问题及解决

发布时间:2019-08-07 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了应用程序语言(PHP)导出csv文件乱码问题及解决脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

运营同学提供数据支持,需求是导出数据文件,通常就是Excel能打开的、通用的CSV逗号分隔符文件。

首先导出 无bom头UTF-8编码的标准csv格式文件,但用Excel打开此csv乱码。
此时考虑,能否手动指定Excel打开文件的编码:

文件-导入-CSV,指定UTF8编码、 ,分隔符 及 " qualifier,不乱码了,但出现 字段内容的换行符以外起作用,也就是CSV的qualifier解析失效。

没能解决,遂换个思路,分析Excel本身导出的utf8编码的csv文件
csv-utf8-bom.png

赫然写着WITh BOM,丫生成的utf8文件带BOM头!(业界对于UTF8文件,不带BOM头的做法更为标准,微软仍在依赖BOM)

PHP生成csv时,先输出BOM头,导出的csv文件,用Excel直接打开,完美解决乱码问题!

具体代码(Stackoverflow,maybe需翻墙):
PHP导出csv

PHP输出BOM头:

echo "xEFxBBxBF";

题外话:
解决这个问题时,遇到另一个小问题,PHP的指令结束标志 ?>,在include及require等文件引入时,产生额外的空白符见:Note,对一些场景导致bug。
比如此文,在输出BOM头前 输出了空白字符,将导致多数软件无法正常识别带BOM头的文件。

脚本宝典总结

以上是脚本宝典为你收集整理的应用程序语言(PHP)导出csv文件乱码问题及解决全部内容,希望文章能够帮你解决应用程序语言(PHP)导出csv文件乱码问题及解决所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。