ホームページ >運用・保守 >Linuxの運用と保守 >Linux で zip ファイルを解凍するときに文字化けが発生する問題の解決策を共有します。

Linux で zip ファイルを解凍するときに文字化けが発生する問題の解決策を共有します。

黄舟
黄舟オリジナル
2017-06-02 10:25:192944ブラウズ

この記事は、linuxでのzipファイル解凍文字化け問題を解決する方法を主に紹介します。興味のある友人は参考にしてください。

原因

zip形式ではエンコード形式が指定されていないため、Windowsで生成されたzipファイルのエンコードはGBK/GB2312などとなっており、Linuxで解凍すると文字化けしてしまいます。 Linux のデフォルトのエンコーディングは UTF8 であるためです。

解決策1

7zを使用して解凍します。

p7zipとconvmvをインストール

# fedora
$ su -c 'yum install p7zip convmv'
# ubuntu
$ sudo apt-get install p7zip convmv

コマンドを実行して解凍する

# 使用7z解压缩
$ LANG=C 7za x your-zip-file.zip
# 递归转码
$ convmv -f GBK -t utf8 --notest -r .

解決策2

Windowsで圧縮されたファイルは、システムのデフォルトのエンコードである中国語を使用してファイルを圧縮します。 zip ファイル内でエンコードが宣言されていないため、Linux での解凍は通常デフォルトのエンコードで解凍され、中国語のファイル名が文字化けしてしまいます。

これは 2005 年に誰かがバグとして報告していましたが、info-zip の公式 Web サイトにはエンコードの自動認識が計画に含まれていなかったのでしょう。 Sun は、Java に N 年間存在していた zip エンコーディングの問題に対して同じアプローチを採用しました。

問題を解決するには 2 つの方法があります:

1. unzip 行コマンドで解凍し、文字セットを指定します

unzip -O CP936 xxx.zip (GBK、GB18030 も使用可能)

興味深いのは、解凍マニュアルにはこのオプションの説明がありませんが、unzip --help にはこのパラメータの簡単な説明があります。

2. 環境変数 で、常に指定された文字セットでファイルを表示および解凍するための unzip パラメーターを指定します

/etc/environment

UNZIP="-O CP936"
ZIPINFO="-O CP936"

に 2 行を追加して、Gnome デスクトップのアーカイブ ファイル マネージャーが機能するようにします。 (file -roller) は unzip を使用して中国語を通常どおり解凍できますが、file-roller 自体はエンコーディングを設定して unzip に渡すことができません。

以上がLinux で zip ファイルを解凍するときに文字化けが発生する問題の解決策を共有します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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