Cygwin oder GnuWin32 bieten Unix-Tools wie iconv
und dos2unix
(und unix2dos
). Unter Unix / Linux / Cygwin sollten Sie anstelle von ANSI "windows-1252" als Kodierung verwenden (siehe unten). (Wenn Sie nicht wissen, dass Ihr System eine andere Codepage als 1252 als Standard-Codepage verwendet, müssen Sie iconv die richtige Codepage mitteilen, aus der übersetzt werden soll.)
Konvertieren Sie von einem ( -f
) zum anderen ( -t
) mit:
$ iconv -f windows-1252 -t utf-8 infile > outfile
Oder in einer Find-All-and-Conquer-Form:
## this will clobber the original files! $ find . -name '*.txt' -exec iconv --verbose -f windows-1252 -t utf-8 {} \> {} \;
Alternative:
## this will clobber the original files! $ find . -name '*.txt' -exec iconv --verbose -f windows-1252 -t utf-8 -o {} {} \;
Diese Frage wurde auf dieser Site oft gestellt. Hier finden Sie einige zusätzliche Informationen zu "ANSI". In einer Antwort auf eine verwandte Frage erwähnt CesarB :
Es gibt verschiedene Kodierungen, die in Windows "ANSI" genannt werden. In der Tat ist ANSI eine Fehlbezeichnung . iconv kann nicht erraten, was Sie wollen.
Die ANSI-Kodierung ist die Kodierung, die von den "A" -Funktionen der Windows-API verwendet wird (die "W" -Funktionen verwenden UTF-16). Welche Kodierung dies entspricht, hängt in der Regel von Ihrer Windows-Systemsprache ab. Am gebräuchlichsten ist der CP 1252 (auch als Windows-1252 bekannt). Wenn Ihr Editor also ANSI sagt, bedeutet dies "Was auch immer die API-Funktionen als ANSI-Standardcodierung verwenden", dh die in Ihrem System verwendete Standardcodierung (nicht Unicode-Kodierung) (und normalerweise diejenige, die für Textdateien verwendet wird).
Die Seite, auf die er verweist, gibt diesen historischen Leckerbissen (zitiert aus einem Microsoft PDF- Dokument ) zu den Ursprüngen von CP 1252 und ISO-8859-1, einer anderen häufig verwendeten Kodierung:
Dies liegt daran, dass die Windows-Codepage 1252 ursprünglich auf einem ANSI-Entwurf beruhte, der zur ISO-Norm 8859-1 wurde. Beim Hinzufügen von Codepunkten zu dem Bereich, der für Steuercodes im ISO-Standard reserviert ist, wichen die Windows-Codepage 1252 und nachfolgende Windows-Codepages, die ursprünglich auf der ISO 8859-x-Serie basierten, jedoch von der ISO ab. Bis heute ist es nicht ungewöhnlich, dass die Entwicklergemeinde sowohl innerhalb als auch außerhalb von Microsoft die 8859-1-Codepage mit Windows 1252 verwechselt. Außerdem wird "ANSI" oder "A" verwendet, um die Unterstützung der Windows-Codepage zu kennzeichnen .