utf-8でエンコードされたアラビア語、英語、ロシア語のファイルがたくさんあります。Perlスクリプトを使用してこれらのファイルを処理しようとすると、次のエラーが発生します。
Malformed UTF-8 character (fatal)
これらのファイルの内容を手動で確認したところ、奇妙な文字がいくつか見つかりました。今、私はこれらの文字をファイルから自動的に削除する方法を探しています。
とにかくそれをすることはありますか?
utf-8でエンコードされたアラビア語、英語、ロシア語のファイルがたくさんあります。Perlスクリプトを使用してこれらのファイルを処理しようとすると、次のエラーが発生します。
Malformed UTF-8 character (fatal)
これらのファイルの内容を手動で確認したところ、奇妙な文字がいくつか見つかりました。今、私はこれらの文字をファイルから自動的に削除する方法を探しています。
とにかくそれをすることはありますか?
回答:
このコマンド:
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
pbpaste | iconv -f utf-8 -t -utf-8 -c | pbcopy
。また、をターゲットにしてすべての特殊文字を削除するためのグローバルショートカットを使用してAlfredワークフローを作成しましたascii
。
iconv -f utf-8 -t ascii//TRANSLIT
私の問題を解決しました。中引用符を一重引用符に変換します。
-o
異なる出力ファイルの場合
メソッドはバイトごとに読み取り、文字のバイト単位の構成を完全に理解して評価する必要があります。最も簡単な方法は、UTF-8文字のみを出力する以外はすべて読み取るエディターを使用することです。テキストパッドは1つの選択肢です。