ホームページ  >  記事  >  運用・保守  >  Linux で zip ファイルを解凍すると文字化けが発生する場合はどうすればよいですか?

Linux で zip ファイルを解凍すると文字化けが発生する場合はどうすればよいですか?

Y2J
Y2Jオリジナル
2017-05-24 14:16:062554ブラウズ

この記事は、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に2行を追加します


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

これがアーカイブファイルですGnome デスクトップの管理者 (file-roller) は通常、unzip を使用して中国語を解凍できますが、file-roller 自体は unzip に渡すエンコーディングを設定できません。

【関連する推奨事項】

1. Mysql の無料ビデオチュートリアル

2. データインポート時の innodb_index_stats の詳細な説明 プロンプトテーブルの主キー競合エラー

3. 詳しい例の説明 mysql の innodb_autoinc_lock_mode

4.

MySQL に新しいユーザー権限を追加する例の詳細な説明

5.

Linux はサーバーのネットワーク状態をどのように検出しますか

以上がLinux で zip ファイルを解凍すると文字化けが発生する場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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