Es gibt im Jahr 2021 absolut keinen Grund mehr, Latin-1 bzw. ISO 8859-1 und dergleichen zu benutzen. Verwendet gefälligst UTF-8 oder eine der anderen Kodierungen für Unicode. Wer noch Latin-1 oder ähnliches benutzt, der macht etwas falsch. Es gibt keinen Verwendungszweck dafür. Unicode wird dieses Jahr 30 Jahre alt. UTF-8 gibt es seit 1996. Unterstützung dafür gibt es in Betriebsystemen und Anwendersoftware dafür bestimmt seit 20 Jahren. Wenn irgendwelche Software heutzutage kein Unicode kann, dann ist das ein schwerwiegender Mangel. Wer auf solche Software angewiesen ist, der sollte sich mal nach Alternativen umsehen.
Es ist besorgniserregend, wie oft ich bei XNEdit irgendwelche Anfragen kriege, ob ich nicht irgendwelche Encoding-Features implementieren könnte. Zum Beispiel passt manchen Leuten offenbar UTF-8 als Default nicht. Auch wenn ich sowas jetzt immer implementiert habe, finde ich das einfach nur falsch. Einfach für alle Textdateien UTF-8 benutzen oder UTF-16 mit Byte Order Mark, wenn es sich anbietet.
Damit dies nicht ein völlig unkonstruktiver Rant ist, gibt es hier noch eine kleine Hilfe, um falsch kodierte Dateien zu finden.
find . -type f -name "*" -exec file --mime-encoding {} \; | grep -v "utf\|ascii\|binary"
Bei Bedarf statt *
einen Filter einsetzen, damit nicht zu viele Dateien unnötig überprüft werden. Das ganze liefert euch eine Liste der Dateien, die ihr besser umkodieren solltet. Das Umkodieren macht dieser Oneliner jedoch nicht, das muss manuell oder mit einem extra Script gemacht werden, das ich jetzt hier nicht mitliefern wollte, da die Liste hoffentlich eh nur aus bedauerlichen Einzelfällen bestehen wird.