ホームページ >バックエンド開発 >PHPの問題 >php ziparchiveで中国語が文字化けする場合はどうすればいいですか?

php ziparchiveで中国語が文字化けする場合はどうすればいいですか?

藏色散人
藏色散人オリジナル
2021-05-28 09:31:052292ブラウズ

php ziparchive での中国語文字化けの解決策: まず、圧縮パッケージを開いて内部ファイル名とディレクトリをトランスコードし、トランスコード後に圧縮パッケージを閉じ、解凍のために再度開きます。

php ziparchiveで中国語が文字化けする場合はどうすればいいですか?

この記事の動作環境:Windows 7 システム、PHP バージョン 7.1、DELL G3 パソコン

中国語文字化けの解決方法ZipArchive を使用して PHP を解凍する場合の問題

PHP 付属の ZipArchive を使用して中国語のファイル名を持つ圧縮パッケージを解凍すると、文字化けが発生します。現象は次のとおりです。 ##元の構造:

解凍コード:

$zip = new \ZipArchive();
$res = $zip->open('./钱学森班.zip');
if ($res !== true){    
throw new \Exception('打开压缩包失败');
}$zip->extractTo('./cache');
$zip->close();

解凍後:

理由

デフォルトは Windows で、Mac はパッケージの圧縮時にエンコードします。簡体字中国語の場合、解凍中にファイル変換が実行されず、解凍結果が期待と一致しませんでした。

解決策

After圧縮パッケージを開き、最初に内部ファイル名とディレクトリをトランスコードし、トランスコード後にパッケージを閉じます。次のように、パッケージを圧縮して再度開き、解凍します。

## 元の圧縮パッケージ ファイルはトランスコーディング後に変更されるため、

トランスコーディングを繰り返すことはできません

。元のファイルに影響を与えたくない場合は、

最初にコピーする必要があります

(php-zip 拡張子はファイル ストリームを単独で読み込むため、コピーする必要はありません)

  • 変換前に mb_detect_encoding を使用するエンコード判定は引き続き UTF-8を返します 推奨学習: 「
  • PHP ビデオ チュートリアル

以上がphp ziparchiveで中国語が文字化けする場合はどうすればいいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。