1

PHP ZipArchive 不支持 UTF8 文件打开

我的问题是带有 UTF8 名称的 OPEN 文件。ZipArchive 不打开带有 UTF8 字符的文件。我不添加新文件我只需要打开文件。

php: 5.6 并使用 Yii2。

代码:

$path = "files/تست تست.zip";
        $zip = new \ZipArchive();
        if($zip->open($path) === true) {

            return "File opened";
        }
        else
        {
            return "File could not be opened";
        }
4

1 回答 1

0

很抱歉将其标记为不相关问题的重复项。

我可以使用 PHP 5.6 毫无问题地打开 UTF-8 zip 文件。

此代码将毫无问题地创建一个具有该文件名的新 ZIP 文件,其中包含“test.txt”文件:

$path = "تست تست.zip";
$zip = new ZipArchive();

if($zip->open($path, ZipArchive::CREATE) === true) {
    echo "File opened\n";
    $zip->addFromString("test.txt", "Test file");
    $zip->close();
} else {
    echo "File could not be opened";
}

此代码将打开一个具有该名称的现有 ZIP 文件,并从存档中打印出第一个文件名:

$path = "تست تست.zip";
$zip2 = new ZipArchive();

if($zip2->open($path) === true) {
    echo "File opened\n";
    echo $zip2->getNameIndex(0);
    $zip2->close();
} else {
    echo "File could not be opened";
}

这些示例在PHP Sandbox和 phptester.com 上运行良好(没有可用的直接链接)。我也在 3v4l.org 上尝试过,但是他们没有启用 php-zip 扩展,所以ZipArchive在那里不可用。

于 2017-07-19T18:19:16.470 回答