PHP ZipArchive 不支持打开 UTF 8 文件

PHP ZipArchive dont support UTF8 files for open

PHP ZipArchive 不支持打开 UTF8 文件

我的问题是打开具有 UTF8 名称的文件。 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";
        }

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

我可以使用 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 中运行良好(没有直接的 link 可用)。我也在 3v4l.org 上试过了,但是他们没有启用 php-zip 扩展,所以 ZipArchive 在那里不可用。