web-dev-qa-db-ja.com

テキストファイルから非UTF-8文字を削除する方法

Utf-8でエンコードされたアラビア語、英語、ロシア語のファイルがたくさんあります。 Perlスクリプトを使用してこれらのファイルを処理しようとすると、次のエラーが表示されます。

Malformed UTF-8 character (fatal)

これらのファイルの内容を手動でチェックすると、奇妙な文字が見つかりました。現在、これらの文字をファイルから自動的に削除する方法を探しています。

とにかくそれを行うにはありますか?

74
Hakim

このコマンド:

iconv -f utf-8 -t utf-8 -c file.txt

uTF-8ファイルをクリーンアップして、無効な文字をすべてスキップします。

-f is the source format
-t the target format
-c skips any invalid sequence
138
Palantir

メソッドはバイト単位で読み取り、バイト単位の文字の構成を完全に理解し、評価する必要があります。最も簡単な方法は、UTF-8文字のみを出力する以外は何でも読み取るエディターを使用することです。テキストパッドは1つの選択肢です。

0
Charles KnNell