如何在PHP中输出可以正确读取Excel的UTF-8 CSV?

如何在PHP中输出可以正确读取Excel的UTF-8 CSV?,第1张

如何在PHP中输出可以正确读取Excel的UTF-8 CSV?

引用Microsoft支持工程师的话

Excel for Mac当前不支持UTF-8

2017年更新 :适用于 Office 2016 之前的Mac的所有Microsoft Excel版本。较新版本(来自Office
365)现在支持UTF-8。

为了输出Windows和OS X上的Excel都能够成功读取的UTF-8内容,您需要做两件事:

  1. 确保将您的UTF-8 CSV文本转换为UTF-16LE

    mb_convert_encoding($csv, 'UTF-16LE', 'UTF-8');
  2. 确保将UTF-16LE字节顺序标记添加到文件的开头

    chr(255) . chr(254)

仅在OS X(而 不是
Windows)上的Excel上出现的下一个问题是在查看带有逗号分隔值的CSV文件时,Excel将仅用一行显示行,并且所有文本以及第一行的逗号都将呈现。

避免这种情况的方法是使用制表符作为分隔值。

我从PHP注释中使用了此功能(使用制表符“
t”而不是逗号),并且它在OS X和Windows Excel上都可以完美运行。

请注意,要解决将空列作为行尾的问题,我确实不得不更改了以下代码行:

    $field_cnt = count($fields);

    $field_cnt = count($fields)-1;

就像该页面上的其他一些评论所述,其他电子表格应用程序(如OpenOffice Calc,Apple自己的Numbers和Google
Doc的电子表格)对带有逗号的UTF-8文件没有问题。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5151336.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-18
下一篇2022-11-18

发表评论

登录后才能评论

评论列表(0条)

    保存