私はLinuxverseに初めて触れたので、標準的な質問をするのか理解してください。
次のリンクを使用してzipファイルをダウンロードしました。https://io.genesis-ark.club/common/20240401/三国志名章の記録(2).zip
初めてダウンロードを使用したとき、wget "https://io.genesis-ark.club/common/20240401/三国名将录(2).zip"
ダウンロードが完了した後にエラーが発生したため、単に再ダウンロードを使用しました。しかし、zipを抽出しようとすると、次のような奇妙な結果が表示されます。???????.zip
wget "https://io.genesis-ark.club/common/20240401/三国名将录(2).zip" -O mydownload.zip
だから、詳細を含むzipファイルを取得する方法を見つけようとしています。インターネット検索中に見つかりましたが、zipinfo mydownload.zip
出力が私にも奇妙に見えます。
非標準プログラム(rar、zip、7zなど)を使用した圧縮によって発生することがありますか?どうすれば解決できますか? 7zipを試してみましたunzip -a
が、何も機能しませんでした。
注:私はCentos 7.0を使用しています。
コメントに基づく追加情報:
出力locale charmap
:
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
ANSI_X3.4-1968
出力locale
:
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LC_CTYPE=UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
答え1
ロケールの文字エンコーディングは、米国式(ASCIIおよびANSI)英語ANSI_X3.4-1968
と128の一意の文字のみを含む文字セットであるASCIIの別の名前です。A
中国ならではの感じは全くありません。
LC_CTYPE
環境変数がに設定されていますが、CentOSシステムでは有効なロケール名ではないUTF-8
ため、これらのロケールを取得します(サポートされているロケールのリストはのUTF-8
出力を参照)。locale -a
Apple macos(以前のmacOS、OS / X、MacOS / X、またはAppleマーケティングチームでいつか呼び出されるのが好きな名前)は、例外として知られている少数のシステムで有効なロケールです。
ロケールカテゴリが次の場合をLC_CTYPE
カバーします。文字エンコーディング何よりも見つからず、C
ほとんどのシステム(CentOSを含む)のロケールがデフォルトで、charmapはASCIIです。
出力には環境変数がに設定されているとlocale
表示されます。LANG
en_US.UTF-8
これはシステムで有効なロケールです。このLC_CTYPE
ロケールは偽物なので、設定しないでください。したがって、このロケールには、派生した他のLC_*
カテゴリ$LANG
と同様にen_US.UTF-8
UnicodeエンコーディングUTF-8文字マップがあります。既知のすべての既存の文字が含まれています。 。
次の手順を実行して、シェル環境でこの問題をローカルで解決できます。
unset -v LC_CTYPE
(POSIXに似たシェルを想定)
これにより、次の出力が表示されますlocale
。
LC_CTYPE="en_US.UTF-8"
(二重引用符は値ですミルダ$LANG
(ここでは設定されていません$LC_ALL
)
問題をより恒久的に解決するには、その環境変数を設定するものを理解する必要があります。
ssh
1つの可能性は、Macosシステムから対応するCentOSシステムにログインしており、Macosシステムの環境にはLC_CTYPE=UTF-8
(機能的に)含まれており、ssh
通常はローカライズされた変数をサーバー1に渡すように構成され、最終的にサーバー1に伝播されます。 CentOSシステムのリモートシェルセッション。
この場合、macosに変数の転送を停止するように指示するかLC_CTYPE
、macosに限定されず、他のシステムに移植可能な値を送信する必要があります。たとえば、次のように追加できます。
SetEnv LC_CTYPE=en_US.UTF-8
~/.ssh/config
この変数の特定の値を送信します。 Macos以外のシステムに偽の環境変数の値を送信するのは明らかに面倒な$LC_CTYPE
のでssh_config
、これをAppleの問題として提起することもできます。 。
次のようにすることもできます。
env -u LC_CTYPE ssh centos-machine
変える:
ssh centos-machine
LC_CTYPE
環境変数がリモートssh
シェルに渡されていないことを確認してください。
¹ 通常、SendEnv LANG LC_*
クライアントとAcceptEnv LANG LC_*
サーバー側の一部の構成ガイドライン