613 Stimmen

Wie konvertiere ich Textdateien am besten zwischen Zeichensätzen?

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".

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=20100927014115AAiRExF

2 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)

302voto

Troels Arvin Punkte 5898

Eigenständiges Dienstprogramm Anfahrt

iconv -f ISO-8859-1 -t UTF-8 in.txt > out.txt

-f ENCODING  the encoding of the input
-t ENCODING  the encoding of the output

Sie müssen keines dieser Argumente angeben. Sie werden standardmäßig auf Ihr aktuelles Gebietsschema gesetzt, das normalerweise UTF-8 ist.

112voto

Boop Punkte 1089

Versuchen Sie VIM

Wenn Sie eine vim können Sie dies verwenden:

Nicht für jede Kodierung getestet.

Das Tolle daran ist, dass Sie die Quellkodierung nicht kennen müssen

vim +"set nobomb | set fenc=utf8 | x" filename.txt

Beachten Sie, dass dieser Befehl direkt die Datei


Erläuterungsteil!

  1. + : Wird von vim verwendet, um beim Öffnen einer Datei direkt einen Befehl einzugeben. Normalerweise wird es verwendet, um eine Datei in einer bestimmten Zeile zu öffnen: vim +14 file.txt
  2. | : Trennzeichen für mehrere Befehle (wie ; in der Bash)
  3. set nobomb : kein utf-8 BOM
  4. set fenc=utf8 : Neue Kodierung auf utf-8 setzen doc link
  5. x : Datei speichern und schließen
  6. filename.txt : Pfad zur Datei
  7. " : qotes sind wegen der Rohre hier. (andernfalls wird die Bash sie als Bash-Pipe verwenden)

39voto

Cheekysoft Punkte 34104

Unter Linux können Sie das sehr leistungsfähige umschreiben. um zu versuchen, zwischen den verschiedenen Zeichensätzen zu konvertieren und Probleme mit Zeilenenden zu lösen. recode -l zeigt Ihnen alle Formate und Kodierungen, zwischen denen das Tool konvertieren kann. Die Liste ist wahrscheinlich SEHR lang.

24voto

Daniel Papasian Punkte 15817

iconv(1)

iconv -f FROM-ENCODING -t TO-ENCODING file.txt

Außerdem gibt es iconv-basierte Tools in vielen Sprachen.

24voto

Jay Bazuzi Punkte 43111
Get-Content -Encoding UTF8 FILE-UTF8.TXT | Out-File -Encoding UTF7 FILE-UTF7.TXT

Die kürzeste Version, wenn Sie davon ausgehen können, dass die Eingangsstückliste korrekt ist:

gc FILE.TXT | Out-File -en utf7 file-utf7.txt

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X