解决PHP导出CSV文件中文乱码问题
要解决PHP导出CSV文件中文乱码问题,可以采取以下几个步骤:
1. 在生成CSV文件前,先将PHP文件的字符集编码设置为UTF-8,这样就能够正确显示中文字符。可以使用以下代码实现:
```
header('Content-Type: text/csv; charset=utf-8');
```
2. 在写入CSV文件时,需要使用mb_convert_encoding()函数将字符串从当前字符集转换为UTF-8编码。例如:
```
$output = fopen('php://output', 'w');
fputcsv($output, array('姓名', '年龄', '性别'));
while ($row = $result->fetch_assoc()) {
$name = $row['name'];
$age = $row['age'];
$gender = $row['gender'];
// 将字符串转换为 UTF-8 编码
$name = mb_convert_encoding($name, 'UTF-8', 'auto');
$gender = mb_convert_encoding($gender, 'UTF-8', 'auto');
fputcsv($output, array($name, $age, $gender));
}
fclose($output);
```
3. 请确保你的CSV文件在保存时采用了UTF-8编码。如果你在Windows中使用Excel打开CSV文件,需要注意选择正确的编码方式。可以采用“数据”->“从文本/CSV导入”命令并选择正确的编码方式来导入CSV文件,以避免中文乱码问题。
通过以上几个步骤,就能够解决PHP导出CSV文件中文乱码问题。