Я использую класс PHP ZipArchive для извлечения .zip файла. Он отлично работает для английского языка, но вызывает проблемы на моем локальном языке (THAI).
Я использую icov('utf-8','windows-874',$zip->getNameIndex($i))
для преобразования utf-8 в THAI. Он работает для имени папки/файла, но не работает для извлеченного файла .zip и вызывает эту ошибку:
iconv(): обнаружен недопустимый символ в строке ввода
Может кто-нибудь, пожалуйста, скажите мне, в чем проблема?
Мой PHP-код
$file = iconv('utf-8', 'windows-874', $_GET['File']);
$path = iconv('utf-8', 'windows-874', $_GET['Path']);
$zip = new ZipArchive;
if ($zip->open($file) === TRUE) {
// convert to Thai language
for($i = 0; $i < $zip->numFiles; $i++) {
$name = $zip->getNameIndex($i);
//echo iconv("charset zip file", "windows-874", $name);
//$zip->extractTo($path,$name); -> this problem
}
$zip->close();
echo json_encode('unZip!!!');
} else {
echo json_encode('Failed');
}
После того, как я извлечу заархивированный файл, имя файла не является тем, которое я установил для него.
Это имя, которое я пытаюсь установить:
Вот мой заархивированный файл:
https://www.dropbox.com/s/9f4j04lkvsyuy63/test.zip?dl=0
UPDATE
Я попытался разархивировать файл в Windows XP, он отлично работает там, но не в Windows 7.