PHP - Crear fichero csv con codificación ANSI

 
Vista:

Crear fichero csv con codificación ANSI

Publicado por Julio (4 intervenciones) el 16/06/2014 14:42:24
Utilizo la función fputcsv para generar un fichero csv, pero al abrirlo en excell se ven mal las ñ, acentos, etc.

La codificación del fichero es utf-8, si lo abro con un editor de texto se ve correctamente. Para excel la codificación debería de ser ANSI.

Como lo genero, el código que utilizo es:

1
2
3
4
5
6
7
8
9
10
11
12
13
//Generamos el fichero CSV
    $out = fopen('php://output', 'w');
 
    foreach ($lista as $campos) {
        fputcsv($out, $campos, ';');
    }
 
    fclose($out);
 
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Content-type: application/csv");
    header("Content-disposition: csv" . date("Y-m-d") . ".csv");
    header( "Content-disposition: filename=export.csv");

$lista es un array donde guardo toda la info que saco de una consulta a la BD
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 12
Ha aumentado su posición en 15 puestos en PHP (en relación al último mes)
Gráfica de PHP

Crear fichero csv con codificación ANSI

Publicado por Rafael (40 intervenciones) el 16/06/2014 15:49:46
Prueba con:

1
2
3
4
5
6
7
8
9
10
11
//Generamos el fichero CSV
$out = fopen('php://output', 'w');
foreach ($lista as $campos) {
  $campos= iconv("UTF-8", "Windows-1252", $campos);
  fputcsv($out, $campos, ';');
}
fclose($out);
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-type: application/csv");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header( "Content-disposition: filename=export.csv");
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Crear fichero csv con codificación ANSI

Publicado por Julio (4 intervenciones) el 17/06/2014 09:18:34
Gracias por el aporte, tal como comentas no me funcionaba, me daba un error porque le pasa un array, pero poniéndolo donde genero el array si me ha funcionado.

Lo dicho muchas gracias por la contestación.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar