gpt4 book ai didi

php - 在 PHP 中将提取的 Zip 文件重命名为其他语言时出错

转载 作者:行者123 更新时间:2023-12-03 00:18:01 25 4
gpt4 key购买 nike

我使用 PHP ZipArchive 类来提取 .zip 文件,它对于英语工作正常,但在我的本地语言(泰语)中会出现问题。

我使用 icov('utf-8','windows-874',$zip->getNameIndex($i)) 将 utf-8 转换为 THAI。它适用于文件夹/文件的名称,但不适用于提取的 .zip 文件并导致此错误:

iconv(): Detected an illegal character in input string

谁能告诉我这里出了什么问题吗?

我的 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');
}

解压压缩文件后,该文件的名称不是我为其设置的名称。 After I extract the zipped file, The file's name is not the one I set for it.

这是我尝试设置的名称: This is name i try to set :

这是我的压缩文件:

https://www.dropbox.com/s/9f4j04lkvsyuy63/test.zip?dl=0

更新
我尝试在 Windows XP 中解压缩该文件,它在 Windows XP 中工作正常,但在 Windows 7 中不行。

最佳答案

您可能应该尝试mb_detect_encoding()如需帮助 - 请参阅下面的代码。如果您的路径也有问题,您可能需要扩展此代码。如果需要的话,只需使用循环即可。

$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);
$order = mb_detect_order();
$encoding = mb_detect_encoding($name, $order, true);
if (FALSE === $encoding) {
throw new UnexpectedValueException(
sprintf(
'Unable to detect input encoding with mb_detect_encoding, order was: %s'
, print_r($order, true)
)
);
} else {
$encoding = mb_detect_encoding($name);
$stringUtf8 = iconv($encoding, 'UTF-8//IGNORE', $name);
$zip->extractTo($path,$stringUtf8);
}
}
$zip->close();
echo json_encode('unZip!!!');
} else {
echo json_encode('Failed');
}

关于php - 在 PHP 中将提取的 Zip 文件重命名为其他语言时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31231278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com