Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> Linuxでファイルのエンコード、ファイルのエンコード形式の変換、ファイル名のエンコードの変換を表示する

Linuxでファイルのエンコード、ファイルのエンコード形式の変換、ファイル名のエンコードの変換を表示する

  

LinuxでWindowsのファイルを操作する必要がある場合、ファイルのエンコードの変換で問題が発生することがよくあります。 Windowsのデフォルトのファイル形式はGBK(gb2312)ですが、Linuxは通常UTF-8です。 Linuxでファイルのエンコーディングを見たり、ファイルをエンコードしたり変換したりする方法を説明します。ファイルエンコーディングの表示Linuxでファイルエンコーディングを表示する方法はいくつかあります。1. Vimでファイルエンコーディングを直接表示することができます。ファイルエンコーディング形式を表示するには、set fileencodingを使用します。他のエンコーディング形式のファイルを見たい場合、またはVimで文字化けしたファイルの問題を解決したい場合は、〜/.vim rcファイルに次の行を追加します。set encoding = utf-8 fileencodings = ucs-bom、utf- 8、cp936このようにして、ファイルエンコーディングを自動的に認識させることができます(UTF-8またはGBKでエンコードされたファイルを自動的に識別できます)、実際には適切なエンコーディングが見つからない場合はlatin-1を使います。 ASCII)エンコーディングがオンになっています。ファイルエンコーディングの変換1.ファイルをutf-8形式に変換するなど、Vimでファイルエンコーディングを直接変換します。set fileencoding = utf-8 2. iconv変換、iconvコマンドの形式は次のとおりです。iconv -f encoding -t encoding inputfileたとえば、UTF-8エンコードファイルをGBKエンコードに変換するiconv -f GBK -t UTF-8ファイル1 -oファイル2ファイル名エンコード変換:LinuxからWindowsへのファイルのコピー、またはWindowsからLinuxへのファイルのコピー文字化けの場合、Windowsのファイル名はデフォルトでGBKに設定されており、Linuxのデフォルトのファイル名はUTF8であるため、ファイル名が文字化けして問題が解決します。ファイル名はトランスコードする必要があります。 Linuxでは、ファイル名をGBKからUTF-8、またはUTF-8からGBKに変換することができるファイル名エンコード変換用のツールconvmvが特別に提供されています。システムにconvmvがインストールされているかどうかを最初に確認し、インストールされていない場合は、yum -y install convmvを使用してインストールします。 convmvの具体的な使用方法を見てみましょう。convmv -fソースコード-t新しいコード[オプション]ファイル名共通パラメータ:-r再帰処理サブフォルダ--notest実際の操作。デフォルトでは、ファイルは正しくありません。運用上、ただし試行のみです。 --listはサポートされているすべてのエンコーディングを表示します--unecapはエスケープすることができます(%20をスペースに変換するなど) - たとえば、utf8でエンコードされたファイル名をGBKエンコーディングに変換します。 GBK --notest utf8エンコードファイル名この変換後、" utf8エンコードファイル名"はGBKエンコードに変換されます(ファイル名エンコード変換のみ。ファイルの内容は変更されません)。vimエンコードモード設定とすべて一般的なテキストエディタと同様に、Vimはさまざまな文字エンコードファイルを簡単に編集できます。もちろん、UCS-2やUTF-8などの一般的なUnicodeエンコードも含まれます。しかし、残念ながら、Linuxの世界の多くのソフトウェアと同様に、これを設定する必要があります。 Vimには、文字エンコーディング、エンコーディング、ファイルエンコーディング、ファイルエンコーディング、ターメコーディングに関連する4つのオプションがあります(可能な値についてはVimオンラインヘルプ:help encoding-namesを参照してください)。 Vimのバッファ、メニューテキスト、メッセージテキストなどを含む文字エンコーディング。デフォルトはロケールの選択に基づいていますので、ユーザーマニュアルでは.vimrcでのみ値を変更することをお勧めします。例えば、あなたのvimのエンコーディングはutf-8で、編集されたファイルはcp936でエンコードされていて、vimは自動的に読み込んだファイルをutf-8に変換します(vimは読み込むことができます)。方法を理解すると、ファイルを書き込むと自動的にcp936(ファイルの保存コード)に変換されます。* fileencoding:Vimで現在編集中のファイルの文字エンコード、ファイルを保存するときにVimもファイルを保存します。このタイプの文字エンコーディング(新しいファイルかどうかにかかわらず)。 * fileencodings:ファイルエンコーディングの順番リストを自動的に検出します。起動時にはリストされている文字エンコーディング方法に従って一つずつ開くファイルの文字エンコーディングを検出し、最後に検出された文字エンコーディングをfileencodingに設定します。そのため、Unicodeエンコーディングをリストの先頭に置き、ラテンエンコーディング方式latin1を最後に置くのが最善です。 * termencoding:Vimが動作する端末(またはWindowsのコンソールウィンドウ)の文字エンコーディング。 vimが配置されている用語がvimのエンコーディングと同じ場合は、設定は不要です。そうでない場合は、vimのtermencodingオプションを使用して自動的にencodingという用語に変換することができますこのオプションはWindowsの通常のGUIモードではgVimには無効で、コンソールモードのVim用のWindowsコンソールのコードページです。通常は変更する必要はありません。それでは、初心者が混乱しやすいようにするための一連のパラメータについて説明しましょうVimのマルチキャラクタエンコーディングサポートがどのように機能するのかを見てみましょう。 1. Vimが起動し、.vimrcに設定されたencodingの値に従って、バッファ、メニューテキスト、メッセージテキストの文字エンコーディングを設定する。 2.編集する必要があるファイルを読み取り、fileencodingsにリストされている文字エンコード方式に従ってファイルエンコード方式を1つずつ検出します。検出されるようにfileencodingを設定し、それは正しい(注1)文字エンコーディングのようです。 3. fileencodingとencodingの値が異なる場合は、iconvを呼び出してファイルの内容をencodingで記述されている文字エンコーディングに変換し、変換された内容をこのファイル用に開かれたバッファに入れます。このファイルはなくなりました。この手順を完了するには、外部のiconv.dllを呼び出す必要があることに注意してください(注2)ファイルが$ VIMRUNTIMEまたはPATH環境変数にリストされている他のディレクトリに存在することを確認する必要があります。 4.編集完了後にファイルを保存するときは、fileencodingとencodingの値を再度比較します。異なる場合は、iconvを再度呼び出して、バッファー内のテキストをfileencodingで記述されている文字エンコードに変換し、それを指定のファイルに保存します。繰り返しますが、これにはiconv.dllを呼び出す必要があります。Unicodeにはほとんどすべての言語の文字を含めることができ、UnicodeのUTF-8エンコーディングは非常に費用効果の高いエンコーディングです(小さなスペース消費はUCS-2より少ない)。 utf-8に設定してください。これを行うもう1つの理由は、encodingがutf-8に設定されていると、Vimがファイルがより正確にどのようにエンコードされているかを自動的に検出することです(おそらくこれが主な理由です;)。他のソフトウェアとの互換性を保つために、中国語のWindowsで編集したファイルのファイルエンコードはまだGB2312 /GBKに設定されているため、ファイルエンコードの推奨は中国語に設定されます。 Cp936、これはGBKのコードページです。

Copyright © Windowsの知識 All Rights Reserved