Welches ist das schnellste und einfachste Werkzeug oder Verfahren zur Konvertierung von Textdateien zwischen Zeichensätzen?
Konkret muss ich von UTF-8 nach ISO-8859-15 und umgekehrt konvertieren.
Alles ist möglich: Einzeiler in Ihrer bevorzugten Skriptsprache, Befehlszeilentools oder andere Dienstprogramme für Betriebssysteme, Websites usw.
Die bisher besten Lösungen:
Unter Linux/UNIX/OS X/cygwin:
-
Gnu ikonv vorgeschlagen von Troels Arvin wird am besten verwendet als Filter . Es scheint allgemein verfügbar zu sein. Beispiel:
$ iconv -f UTF-8 -t ISO-8859-15 in.txt > out.txt
Wie von Ben gibt es eine Online-Konverter mit iconv .
-
umschreiben. ( Handbuch ) vorgeschlagen von Cheekysoft konvertiert eine oder mehrere Dateien an Ort und Stelle . Beispiel:
$ recode UTF8..ISO-8859-15 in.txt
Dieser verwendet kürzere Aliasnamen:
$ recode utf8..l9 in.txt
Recode unterstützt auch Oberflächen die zur Konvertierung zwischen verschiedenen Zeilenendentypen und Kodierungen verwendet werden kann:
Wandelt Zeilenumbrüche von LF (Unix) in CR-LF (DOS) um:
$ recode ../CR-LF in.txt
Base64 kodierte Datei:
$ recode ../Base64 in.txt
Sie können sie auch kombinieren.
Konvertiert eine Base64-kodierte UTF8-Datei mit Unix-Zeilenenden in eine Base64-kodierte Latin-1-Datei mit Dos-Zeilenenden:
$ recode utf8/Base64..l1/CR-LF/Base64 file.txt
Unter Windows mit Powershell ( Jay Bazuzi ):
PS C:\> gc -en utf8 in.txt | Out-File -en ascii out.txt
(Allerdings wird ISO-8859-15 nicht unterstützt; es werden die Zeichensätze unicode, utf7, utf8, utf32, ascii, bigendianunicode, default und oem unterstützt).
bearbeiten
Meinen Sie die Unterstützung von iso-8859-1? Die Verwendung von "String" bewirkt dies z. B. für den umgekehrten Fall
gc -en string in.txt | Out-File -en utf8 out.txt
Hinweis: Die möglichen Aufzählungswerte sind "Unknown, String, Unicode, Byte, BigEndianUnicode, UTF8, UTF7, Ascii".
- CsCvt - Kalytta's Zeichensatz-Konverter ist ein weiteres hervorragendes kommandozeilenbasiertes Konvertierungstool für Windows.
1 Stimmen
Intenté
gc -en Ascii readme.html | Out-File -en UTF8 readme.html
aber es konvertiert die Datei in utf-8, aber dann ist sie leer! Notepad++ sagt, dass die Datei im Ansi-Format ist, aber wenn ich es richtig verstanden habe, ist das nicht einmal ein gültiger Zeichensatz? uk.answers.yahoo.com/question/index?qid=20100927014115AAiRExF2 Stimmen
Ich bin gerade auf der Suche nach einer Antwort auf eine verwandte Frage auf diesen Artikel gestoßen - tolle Zusammenfassung! Ich dachte nur, es lohnt sich, das hinzuzufügen
recode
fungiert auch als Filter, wenn Sie ihm keine Dateinamen übergeben, z. B.:recode utf8..l9 < in.txt > out.txt
1 Stimmen
iconv.com/iconv.htm scheint für mich gestorben zu sein? (Zeitüberschreitung)
2 Stimmen
Wenn Sie
enca
müssen Sie die Eingabekodierung nicht angeben. Oft reicht es aus, die Sprache anzugeben:enca -L ru -x utf8 FILE.TXT
.1 Stimmen
Eigentlich funktionierte iconv viel besser als ein In-Place-Konverter anstelle eines Filters. Die Konvertierung einer Datei mit mehr als 2 Millionen Zeilen mit
iconv -f UTF-32 -t UTF-8 input.csv > output.csv
nur etwa siebenhunderttausend Zeilen, also nur ein Drittel, gespeichert. Verwendung der In-Place-Versioniconv -f UTF-32 -t UTF-8 file.csv
alle über 2 Millionen Zeilen erfolgreich konvertiert.0 Stimmen
Kodierung "ISO-8859-1" funktioniert bei mir nicht, es ist "ISO8859-1"... wenn Sie alle für die Umwandlung verfügbaren Kodierungen sehen wollen, geben Sie einfach in der Konsole
iconv -l
... danke für die Hilfe0 Stimmen
find httpdocs -type f -exec recode ISO-8859-15..UTF8 {} \;
und beten Sie, dass Sie keine Probleme mit Bildern haben.0 Stimmen
Vielen Dank für die Zusammenfassung. Viel besser als die Antworten IMHO.
0 Stimmen
@Cocuba iconv erkennt 8859_1, ISO-8859-1, ISO8859-1, ISO88591, ISO_8859-1 (dasselbe gilt für andere ISO-8859-Zeichenkodierungen). Überprüft mit iconv 2.27 (Ubuntu)
0 Stimmen
Wie konvertiert man in
LF
? Es gibt/CR
y/CR-LF
aber keine/LF
.0 Stimmen
Iconv kotzte bei meiner Eingabe "illegale Eingabesequenz", also fütterte ich es mit einer Zeile nach der anderen via Bash-While-Schleife. Funktionierte hervorragend, da ich bereit war, die schlechten Zeilen zu verwerfen.