Nazwy plików PHP ZipArchive w języku angielskim zwracają funky nazw plików w archiwum

Ten kod działa poprawnie, aby plik ZIP był z pożądanymi plikami, z wyjątkiem nazw plików w archiwum, które nie są w języku angielskim (w tym przypadku są hebrajskie), mają dziwne znaki zamiast właściwych liter hebrajskich.

<?php
$filesfordown = $_POST['GEMin'];
    if(empty($filesfordown)) 
    {
        echo "No files were seleceted for download.";
    } 
    else 
    {
$zip_name = "RMW." . time() . ".zip";
$zip = new ZipArchive;
$zip->open($zip_name, ZipArchive::CREATE);
foreach ($filesfordown as $filefordown) {
  $zip->addFile($filefordown);
}
$zip->close(); }

header('Content-Type: application/zip');
header("Content-disposition: attachment; filename='$zip_name'");
header('Content-Length: ' . filesize($zip_name));
readfile($zip_name);

ob_flush;
?>

Szukałem czegoś, wydaje się, że może pomóc iconv, setlocalte lub mb_convert_encoding, ale cokolwiek próbowałem, nie działało.

Jakieś pomysły?

P.S. Na marginesie, czy istnieje sposób, aby nie zachowywać struktury katalogów w ZIP?

ETA: przykład$_post może być www.domain.com/path/ שלום_01. mp3

questionAnswers(2)

yourAnswerToTheQuestion