我使用 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
更新
我尝试在 Windows XP 中解压缩文件,它在那里工作正常,但在 Windows 7 中不行。