GNU/Linux >> Linux の 問題 >  >> Linux

iconv UTF-8 への任意のエンコーディング

それらすべてをコンパイルします。ディレクトリに移動し、dir2utf8.sh を作成します :

#!/bin/bash
# converting all files in a dir to utf8

for f in *
do
  if test -f $f then
    echo -e "\nConverting $f"
    CHARSET="$(file -bi "$f"|awk -F "=" '{print $2}')"
    if [ "$CHARSET" != utf-8 ]; then
      iconv -f "$CHARSET" -t utf8 "$f" -o "$f"
    fi
  else
    echo -e "\nSkipping $f - it's a regular file";
  fi
done

enca を探しているかもしれません :

<ブロック引用>

Enca は非常に単純な文字セット アナライザーです。テキスト ファイルの文字セットとエンコーディングを検出し、組み込みのコンバーター、または libiconv、librecode、cstocs などの外部ライブラリとツールを使用して、それらを他のエンコーディングに変換することもできます。

現在、ベラルーシ語、ブルガリア語、クロアチア語、チェコ語、エス​​トニア語、ハンガリー語、ラトビア語、リトアニア語、ポーランド語、ロシア語、スロバキア語、スロベニア語、ウクライナ語、中国語、およびいくつかのマルチバイト エンコーディングを言語ごとに個別にサポートしています。

一般に、現在のエンコーディングの自動検出は難しいプロセスであることに注意してください (同じバイト シーケンスが複数のエンコーディングで正しいテキストになる場合があります)。 enca 検出するように指示した言語に基づいてヒューリスティックを使用します (エンコーディングの数を制限するため)。 enconv を使用できます テキスト ファイルを単一のエンコーディングに変換します。


標準の gnu utils ファイルと awk を使用して、必要なものを取得できます。例:

file -bi .xsession-errors 私に与えます:"text/plain; charset=us-ascii"

だから file -bi .xsession-errors |awk -F "=" '{print $2}' 「us-ascii」をくれます

次のようなスクリプトで使用します:

CHARSET="$(file -bi "$i"|awk -F "=" '{print $2}')"

if [ "$CHARSET" != utf-8 ]; then
  iconv -f "$CHARSET" -t utf8 "$i" -o outfile
fi

Linux
  1. Unicode文字のTrアナログ?

  2. `time`に似たコマンドをログに記録しますか?

  3. Zipファイルのエンコード?

  1. Gobolinuxはもうアクティブですか?

  2. 「tail-f| Iconv -fsjis」は何も出力しませんか?

  3. Hibernate + MySQL:データベースとテーブルのエンコーディングを utf-8 に設定する方法

  1. LinuxでファイルをUTF-8エンコーディングに変換する方法

  2. libstdc++ を静的にリンクする:落とし穴はありますか?

  3. Linux と Windows の .txt ファイル (Unicode エンコーディング) の違いは何ですか?