CSV文件写入 UTF-8 的 BOM 头,解决 Excel 等软件在打开 CSV 文件乱码问题

      发布在:后端技术      评论:0 条评论

可以使用 PHP 内置的 fputcsv() 函数将 2 维数组写入 CSV 文件,同时设置文件编码为 UTF-8 以避免中文乱码。

示例代码如下:

// 创建一个包含中文的 2 维数组
$data = array(
array('姓名', '年龄', '性别'),
array('张三', '20', '男'),
array('李四', '22', '女'),
);

// 打开要写入的文件,设置编码为 UTF-8
$file = fopen('data.csv', 'w');
fwrite($file, chr(0xEF) . chr(0xBB) . chr(0xBF)); // 写入 BOM 头

// 循环写入每一行数据
foreach ($data as $row) {
fputcsv($file, $row);
}

// 关闭文件
fclose($file);

注意:

  • fopen() 函数第二个参数为 'w' 表示以写入模式打开文件,如果要追加数据可以使用 'a'

  • 第二个 fwrite() 函数用于写入 UTF-8 的 BOM 头,这是为了让 Excel 等软件在打开 CSV 文件时能正确识别编码。如果不需要,则可以省略这行代码。

  • fputcsv() 函数默认使用逗号(,)作为字段分隔符,引号(")作为字段包围符。可以使用第二个和第三个参数指定自定义的分隔符和包围符。


相关文章
热门推荐