我正在开发一个导出简单CSV的项目。到目前为止,只要我使用英文字符,我的代码就会生成并生成CSV。
某些列名称将使用法语,并希望能够对其进行编码。
这就是我所拥有的:
<?php
// open the file "demosaved.csv" for writing
$file = fopen('myfrench-export.csv', 'w');
// save the column headers
fputcsv($file, array('Question', 'Réponse 1/4', 'Réponse 2/4', 'Réponse 3/4', 'Réponse 4/4', 'Total completé', 'Total non-completé', 'Total cumulatif'));
// Sample data. This can be fetched from mysql too
$data = array(
array('Data 11', 'Data 12', 'Data 13', 'Data 14', 'Data 15'),
array('Data 21', 'Data 22', 'Data 23', 'Data 24', 'Data 25'),
array('Data 31', 'Data 32', 'Data 33', 'Data 34', 'Data 35'),
array('Data 41', 'Data 42', 'Data 43', 'Data 44', 'Data 45'),
array('Data 51', 'Data 52', 'Data 53', 'Data 54', 'Data 55'),
array('Data 51', 'Data 52', 'Data 53', 'Data 54', 'Data 55'),
array('Data 51', 'Data 52', 'Data 53', 'Data 54', 'Data 55'),
array('Data 51', 'Data 52', 'Data 53', 'Data 54', 'Data 55'),
);
// save each row of the data
foreach ($data as $row)
{
fputcsv($file, $row);
}
// Close the file
fclose($file); ?>
答案 0 :(得分:0)
经过一些检查后,我遇到了这个答案,我通过应用utf8_decode调整了这一行,这很有效。
基本上我换了
fputcsv($file, array('Question', 'Réponse 1/4', 'Réponse 2/4', 'Réponse 3/4', 'Réponse 4/4', 'Total completé', 'Total non-completé', 'Total cumulatif'));
用
$array = array_map("utf8_decode", array('Question', 'Réponse 1/4', 'Réponse 2/4', 'Réponse 3/4', 'Réponse 4/4', 'Total completé', 'Total non-completé', 'Total cumulatif'));
这很有效!
答案 1 :(得分:0)
答案 2 :(得分:0)
使用 bom 允许在 excel 中显示特殊字符。
此代码可以帮助您:
// Open the file "demosaved.csv" for writing
$file = fopen('myfrench-export.csv', 'w');
// Mandatory: Use bom to allow to display special characters with excel
fwrite($file, $bom = chr(hexdec('EF')).chr(hexdec('BB')).chr(hexdec('BF')));
// Save the column headers
fputcsv($file, array('Question', 'Réponse 1/4', 'Réponse 2/4', 'Réponse 3/4', 'Réponse 4/4', 'Total completé', 'Total non-completé', 'Total cumulatif'));
// Sample data. This can be fetched from mysql too
$data = array(
array('Data 11', 'Data 12', 'Data 13', 'Data 14', 'Data 15'),
array('Data 21', 'Data 22', 'Data 23', 'Data 24', 'Data 25'),
array('Data 31', 'Data 32', 'Data 33', 'Data 34', 'Data 35'),
array('Data 41', 'Data 42', 'Data 43', 'Data 44', 'Data 45'),
array('Data 51', 'Data 52', 'Data 53', 'Data 54', 'Data 55'),
array('Data 51', 'Data 52', 'Data 53', 'Data 54', 'Data 55'),
array('Data 51', 'Data 52', 'Data 53', 'Data 54', 'Data 55'),
array('Data 51', 'Data 52', 'Data 53', 'Data 54', 'Data 55'),
);
// Save each row of the data
foreach ($data as $row)
{
fputcsv($file, $row);
}
// Close the file
fclose($file);