Ich habe eine txt-Datei:
$ file -i x.txt
x.txt: text/plain; charset=unknown-8bit
$ file x.txt
x.txt: Non-ISO extended-ASCII text, with CRLF line terminators
Und es gibt einige Zeichen, die falsch codiert sind:
trwa³y, sta³y, usuwaæ
Wie kann ich die Kodierung dieser Datei in UTF-8 ändern? Ich habe bis jetzt den folgenden Weg ausprobiert:
$ iconv -f ASCII -t UTF-8 x.txt
puiconv: illegal input sequence at position 4
Vielleicht sollte ich extended ASCII
( high ASCII
) irgendwie benutzen , kann es aber nicht in iconv
der Codierungsliste finden.
character-encoding
text
Patryk
quelle
quelle
iconv -f windows-1252 -t utf-8 file
Antworten:
file
sagt Ihnen "Nicht-ISO-Extended-ASCII-Text", weil es erkennt, dass dies ist:Sie müssen herausfinden, in welcher Codierung sich diese Datei zu befinden scheint. Sie können Encas automatische Erkennung ausprobieren . Möglicherweise müssen Sie ihn in die richtige Richtung bewegen, indem Sie ihm mitteilen, in welcher Sprache der Text vorliegt.
Um die Datei zu konvertieren, übergeben Sie die
-x
Option:enca -L polish x.txt -x utf8 >x.utf8.txt
Wenn Sie Enca nicht verwenden können oder möchten, können Sie die Codierung manuell erraten. Ein bisschen herumschauen sagte mir, dass dies polnischer Text ist und die Wörter trwały, stały, usuważ sind, also suchen wir nach einer Übersetzung wo
³
→ł
undæ
→ż
. Dies sieht aus wie latin-2 oder latin-10 oder wahrscheinlicher (bei einem CP1250 ohne ISO, den Sie als latin1 betrachten) . Um die Datei in UTF-8 zu konvertieren, können Sie recode oder iconv verwenden .quelle
< x.txt > x.utf8.txt
Warum verwenden wir<
und dann>
? Wie funktioniert es?<
und>
führen Eingangs- und Ausgangs Umleitung jeweils .Öffnen Sie die Textdatei mit gedit und im Dialog "Speichern unter ..." sehen Sie die aktuelle Kodierung.
quelle
Haben Sie versucht herauszufinden, welche genaue Kodierung x.txt ist? Sie erhalten eine Liste der unterstützten Kodierungen mit
Manchmal passiert es mir, dass ich eine Diskrepanz zwischen latin1 und utf8 bekomme. Dann hilft es oft, es von und nach utf8 und umgekehrt zu konvertieren.
quelle
Ich habe ein automatisiertes Konvertierungsskript mit der enca- Bibliothek erstellt. Ich verwende es auf meinem NAS, um Untertitel in UTF-8 zu konvertieren. Es kann jedoch für jede automatisierte Konvertierung verwendet werden
Fühlen Sie sich frei zu benutzen :)
BEARBEITEN:
quelle