
引用Microsoft支持工程师的话
Excel for Mac当前不支持UTF-8
2017年更新 :适用于 Office 2016 之前的Mac的所有Microsoft Excel版本。较新版本(来自Office
365)现在支持UTF-8。
为了输出Windows和OS X上的Excel都能够成功读取的UTF-8内容,您需要做两件事:
确保将您的UTF-8 CSV文本转换为UTF-16LE
mb_convert_encoding($csv, 'UTF-16LE', 'UTF-8');
确保将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文件没有问题。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)