このガイドでは、どの文字エンコードについて説明し、コマンドラインツールを使用してファイルをある文字エンコードから別の文字エンコードに変換するいくつかの例について説明します。最後に、任意の文字セット(文字セット)から複数のファイルを変換する方法を見ていきます。 )から UTF-8 Linuxでのエンコーディング。
すでにお気づきかもしれませんが、コンピュータは文字や数字など、私たち人間がビット以外に認識できるものを理解したり保存したりすることはありません。ビットには、0
の2つの可能な値しかありません。 または1
、true
またはfalse
、yes
またはno
。コンピュータが処理するには、文字、数字、画像など、他のすべてのものをビットで表す必要があります。
簡単に言うと、文字エンコード は、生の0と1を実際の文字に解釈する方法をコンピューターに通知する方法です。ここで、文字は一連の数字で表されます。ファイルにテキストを入力すると、作成する単語や文がさまざまな文字から作成され、文字が文字セットに編成されます。 。
ASCII など、さまざまなエンコード方式があります。 、 ANSI 、 Unicode とりわけ。以下はASCIIの例です エンコーディング。
文字ビットA01000001B01000010
Linuxでは、 iconv コマンドラインツールは、テキストをある形式のエンコーディングから別の形式に変換するために使用されます。
ファイルを使用してファイルのエンコードを確認できます コマンド、-i
を使用 または--mime
以下の例のように、mimeタイプの文字列の印刷を可能にするフラグ:
$ file -i Car.java $ file -i CarDriver.java
iconvを使用するための構文 は次のとおりです:
$ iconv option $ iconv options -f from-encoding -t to-encoding inputfile(s)-o outputfile
ここで、-f
または--from-code
入力エンコーディングと-t
を意味します または--to-encoding
出力エンコーディングを指定します。
既知のコード化文字セットをすべて一覧表示するには、次のコマンドを実行します。
$ iconv -l </ pre>ファイルをUTF-8からASCIIエンコーディングに変換
次に、あるエンコーディングスキームから別のエンコーディングスキームに変換する方法を学習します。以下のコマンドは、 ISO-8859-1から変換されます UTF-8 エンコーディング。
input.file
という名前のファイルについて考えてみます。 文字が含まれています:������まず、ファイル内の文字のエンコードを確認してから、ファイルの内容を確認します。密接に、すべての文字を ASCIIに変換できます エンコーディング。
iconvを実行した後 コマンドを実行したら、出力ファイルの内容と文字の新しいエンコーディングを次のように確認します。
$ file -i input.file $ cat input.file $ iconv -f ISO-8859-1 -t UTF-8 // TRANSLIT input.file -o out.file $ cat out.file $ file -i out .file
注 :文字列 //IGNORE
の場合 to-encodingに追加され、変換できない文字と変換後にエラーが表示されます。ここでも、文字列
//TRANSLIT
を想定しています。 上記の例のようにto-encodingに追加されます( ASCII // TRANSLIT )、変換される文字は、必要に応じて、可能であれば文字変換されます。これは、文字がターゲット文字セットで表現できない場合に、1つ以上の類似した外観の文字で近似できることを意味します。したがって、音訳できず、ターゲット文字セットに含まれていない文字は、疑問符
(?)
に置き換えられます。 出力で。複数のファイルをUTF-8エンコーディングに変換
メイントピックに戻ると、ディレクトリ内の複数またはすべてのファイルをUTF-8エンコーディングに変換するには、 encoding.shという小さなシェルスクリプトを記述できます。 次のように:
#!/ bin / bash#enter input encoding hereFROM_ENCODING ="value_here" #output encoding(UTF-8)TO_ENCODING ="UTF-8"#convertCONVERT ="iconv -f $ FROM_ENCODING -t $ TO_ENCODING" #loop to複数のファイルを*.txtのファイルに変換します。 $ CONVERT "$ file" -o "$ {file%.txt} .utf8.converted" doneexit 0を実行しますファイルを保存してから、スクリプトを実行可能にします。ファイルがあるディレクトリ(
*.txt
)から実行します )があります。$ chmod + x encoding.sh $ ./encoding.sh
重要 :このスクリプトを使用して、特定のエンコーディングから別のエンコーディングに複数のファイルを一般的に変換することもできます。 FROM_ENCODING
の値を試してみてください。 およびTO_ENCODING
変数、出力ファイル名を忘れないでください"${file%.txt}.utf8.converted"
。詳細については、 iconvをご覧ください。 マニュアルページ。
$ man iconvこのガイドを要約すると、エンコーディングと、ある文字エンコーディングスキームから別の文字エンコーディングスキームに変換する方法を理解することは、すべてのコンピュータユーザーにとって、テキストの処理に関してプログラマーにとってより必要な知識です。
最後に、質問やフィードバックについては、以下のコメントセクションを使用してご連絡ください。
Linux