Ich stoße häufig auf Textdateien (z. B. Untertiteldateien in meiner Muttersprache, Persisch ) mit Problemen bei der Zeichenkodierung. Diese Dateien werden unter Windows erstellt und mit einer ungeeigneten Codierung (scheinbar ANSI) gespeichert, die wie folgt aussieht:
In Windows kann dies einfach mit Notepad ++ behoben werden , um die Codierung in UTF-8 zu konvertieren, wie unten dargestellt:
Und das korrekte lesbare Ergebnis sieht so aus:
Ich habe eine Menge für eine ähnliche Lösung auf GNU / Linux gesucht, aber leider sind die vorgeschlagenen Lösungen (zB diese Frage ) nicht funktionieren. Vor allem habe ich gesehen , wie Menschen vorschlagen iconv
und , recode
aber ich habe kein Glück mit diesen Werkzeugen hat. Ich habe viele Befehle getestet, einschließlich der folgenden, und alle sind fehlgeschlagen:
$ recode ISO-8859-15..UTF8 file.txt
$ iconv -f ISO8859-15 -t UTF-8 file.txt > out.txt
$ iconv -f WINDOWS-1252 -t UTF-8 file.txt > out.txt
Nichts davon hat funktioniert!
Ich verwende Ubuntu-14.04 und suche nach einer einfachen Lösung (entweder GUI oder CLI), die genauso funktioniert wie Notepad ++.
Ein wichtiger Aspekt ist „einfach“ ist , dass der Benutzer nicht die Quellencodierung zu bestimmen , die erforderlich; Vielmehr sollte die Quellcodierung vom Tool automatisch erkannt und nur die Zielcodierung vom Benutzer bereitgestellt werden. Trotzdem würde ich mich auch über eine funktionierende Lösung freuen, für die die Quellcodierung bereitgestellt werden muss.
Wenn jemand einen Testfall benötigt, um verschiedene Lösungen zu untersuchen, ist das obige Beispiel über diesen Link zugänglich .
iso-639
aber das scheint nicht in entweder vorhanden zu sein iconv
oder recode
. Zumindest sehe ich es nicht in der Ausgabe von iconv -l
.
vim
aber es hat nicht funktioniert.
vim '+set fileencoding=utf-8' '+wq' file.txt
.