Bir .zip dosyasını ayıklamak için PHP ZipArchive sınıfını kullanıyorum, İngilizce için iyi çalışıyor, ancak yerel dilimde sorunlara (THAI) neden oluyor.Hata Ayıklanan Bir Zip Dosyasını Diğer Dillere Yeniden Adlandırma PHP
utf-8 to THAI dönüştürmek için icov('utf-8','windows-874',$zip->getNameIndex($i))
kullanıyorum. Bu klasörün/dosyanın adını çalışır, ancak çıkarılan .zip dosyası için çalışmak ve bu hataya neden olmaz:
iconv(): algılandı giriş dizesinde geçersiz bir karakter
kimse söyleyebilir misiniz sorun ne burada? Ben sıkıştırılmış dosyayı ayıklamak sonra
My PHP kodu
$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');
}
, dosyanın adı bunun için ayarlanmış biri değildir. , Iyi çalışıyor ben windows XP Sıkıştırılmış dosyayı çıkarttıktan çalıştı
https://www.dropbox.com/s/9f4j04lkvsyuy63/test.zip?dl=0
GÜNCELLEME: Burada
benim sıkıştırılmış dosyasıdır:
Bu i kurmayı deneyin addır orada ama Windows 7'de değil.
Dizenin aslında içerdiği şeyi göstermedikçe kimse anlayamaz. (ZIP dosyaları Unicode desteği için gerçekten bilinmemektedir. Çoğu araç sadece yerel karakter kümelerini kullanır.) – mario
İçeriği gerçekten çıkarmak için kullandığınız kod nerede? Bir yere hata veren bir zip dosyasının en az bir örneğini yükleyebilir misiniz (içeriğini ayıklamak için kullandığınız kodu ekledikten sonra)? – MatsLindh
ama "utf8" ile "THAI" çalışmak daha iyi değil mi? Bunu "windows-874" konumuna dönüştürme ihtiyacı nedir? –