csv - Compressed zip file in php doesn't display latin characters

one text

Solution:

Try to download it with chunks and headers should be like this. GOOD JOB KEEP GOING.

<?php 

  $archivo = "REPORTE_PUNTOS.csv";
  $filename = "REPORTE_PUNTOS.zip";

  $zip = new ZipArchive();

  if ($zip->open($filename, ZIPARCHIVE::CREATE) === true) {
    $zip->addFile($archivo);
    $zip->close();
  } else {
    echo 'Error creando '.$filename;
  }

  if (file_exists($filename)) {

header("Pragma: public"); 
header("Expires: 0"); 
header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
header("Cache-Control: public", false); 
header("Content-Description: File Transfer"); 
header("Content-Type: application/x-zip-compressed"); 
header("Accept-Ranges: bytes"); 
header("Content-Disposition: attachment; filename=\"" . $filename . "\";"); 
header("Content-Transfer-Encoding: binary"); 
header("Content-Length: " . filesize($filename)); 
    $chunkSize = 1024 * 1024;
    $handle = fopen($filename, 'rb');
    while (!feof($handle))
    {
        $buffer = fread($handle, $chunkSize);
        echo $buffer;
        ob_flush();
        flush();
    }
    fclose($handle);

    unlink($filename);
  }

Source