确保 PHP 中 UTF-8 CSV 输出的 Excel 兼容性
虽然使用 UTF-8 进行 CSV 导出对于正确的字符编码至关重要,用户在将此类文件导入 Microsoft Excel 时经常遇到问题。要解决此问题,了解 Excel 对 UTF-8 CSV 文件的处理至关重要。
解决方案在于在 CSV 文件的开头包含字节顺序标记 (BOM)。 BOM 是一个三字节序列,用于标识 UTF-8 字符编码。通过合并它,Excel 可以正确地将文件解释为 UTF-8,从而能够正确显示和解释特殊字符。
要合并 BOM,请按如下方式修改 PHP 代码:
header('Content-type: text/csv; charset=UTF-8'); header('Content-Disposition: attachment; filename=CHS.csv'); echo "\xEF\xBB\xBF"; // UTF-8 BOM
BOM 可以作为文字字符串添加,如上所示,或者使用 pack() 函数动态生成:
$bom = pack("CCC", 0xef, 0xbb, 0xbf); echo $bom;
通过将 BOM 添加到在 CSV 输出中,您可以确保 Excel 正确解释文件的字符编码并正确显示特殊字符。据报道,此解决方案可在 Windows 版 Excel 2007 中运行,也可能适用于 Mac OS 版 Excel。
以上是如何确保 PHP 生成的 UTF-8 CSV 文件与 Microsoft Excel 兼容?的详细内容。更多信息请关注PHP中文网其他相关文章!