PHP ZipArchive-> extractTo () работает неправильно с именами файлов, сохраненными только на языке Poli sh - PullRequest
0 голосов
/ 15 января 2020

У меня есть zip-файл с фотографией с именем «test1ąąążżżźźźźććć.jpg», так как вы можете видеть, что он содержит только специальные символы из языка Poli sh. Когда я пытаюсь извлечь его с помощью кода PHP, он возвращает имя файла «test1СÑÑ╛╛╛½½½½ååå.jpg». Но когда я извлекаю имена файлов со специальными символами из более чем одного языка, например "test2óôśšźżžøùú.jpg" (в это имя также включен Poli sh char), он работает хорошо, без проблем. Таким образом, в большинстве случаев PHP извлечение zip происходит только при именах файлов языка Poli sh.

Вот код, который я использовал для извлечения zip-файлов:

function extractZip($file, $path=NULL) {
    if($path == NULL)
        $path = pathinfo(realpath($file), PATHINFO_DIRNAME);

    $zip = new ZipArchive;
    $res = $zip->open($file);
    if ($res === TRUE) {
        $zip->extractTo($path);
        $zip->close();
        echo "Ok,  $file extracted to $path";
    } else {
        echo "Error";
    }
}

extractZip('test.zip');

I Я уверен, что это не проблема с моей системой или zip-файлом. Когда я извлек zips обычным windows explorer, а не по сценарию, все работало хорошо. Пожалуйста, помогите, я перепробовал много методов и искал в Интернете, и я не знаю, как это решить.

...