UbuntuとWindowsを頻繁に切り替えるため、テキストファイルでエンコードの問題が発生します。
Ubuntuでテキストファイルを保存すると、両方のシステムですべて正常に動作します。しかし、UbuntuはWindowsで保存されたファイルのエンコードを検出しません。 Ubuntuテキストエディターで「windowsファイル」を開くたびに、エンコードオプションを変更する必要があります。
ソリューションは、エンコードをWindows-1250からutf-8に変更しています。
したがって、問題は、現在のディレクトリのサブディレクトリ内のすべてのファイルに対して、Windows-1250で各ファイルを開き、utf-8で保存する方法です(再帰的に意味します)。ターミナルで実行できますか、外部アプリケーションが必要です。
あなたの助けを楽しみにしています。
これにはrecode
を使用することを好みます。デフォルトではインストールされませんが、パッケージから同じ名前で入手できます。また、CRLFの行末をLFに変更します。
Sudo apt-get install recode
recode cp1250.. file.txt
ディレクトリ全体のすべてのtxtファイルに対してこれを行うことができます
recode cp1250.. ./*.txt
find
と組み合わせて再帰的に
find . -type f -name "*.txt" -exec recode cp1250.. {} +
標準オプションでは、デフォルトでインストールされるiconv
コマンドを使用しますが、これは行末を変更しないため、別の手順で行う必要があります。
iconv -f cp1250 < file.txt | sed $'s/\r$//' > newfile.txt
長期的には、Windowsエディターのデフォルトの文字セットと行末をUTF-8およびUNIX行末(LF、\n
)に変更して、事後の変換を行わないようにすることをお勧めします。
CRはキャリッジリターン(\r
)を意味する
LFは改行(\n
)を意味します
Windowsは両方を使用しますが、UNIXライクなシステムはLFのみを使用します。
Sublime Textを使用すると、異なるファイルエンコーディングでの保存が非常に簡単になります。異なるエンコーディングで再度開いて複数のファイルを操作することもできます。詳細については、この answer を確認してください。