it-swarm.com.de

Verwendung von iconv zur Konvertierung von UTF-16LE nach UTF-8

Hallo, ich versuche, einige Protokolldateien von einem Microsoft SQL-Server zu konvertieren, aber die Dateien werden mit UTf-16LE codiert und iconv scheint sie nicht konvertieren zu können.

Ich mache:

iconv -f UTF-16LE -t UTF-8 <filename>

Ich habe auch versucht, alle Zeilenumbrüche vom Ende der Zeile zu löschen, wenn es welche gibt, aber das hat es auch nicht behoben. Wenn ich es mit gedit speichere, funktioniert das, aber dies ist keine praktikable Lösung, da ich Hunderte dieser Dateien habe.

EDIT : Bitte lesen Sie die neue Antwort für die fehlende Option

42
laitha0

Ich habe den -o - Schalter vergessen!

Der letzte Befehl lautet:

iconv -f UTF-16LE -t UTF-8 <filename> -o <new-filename>
33
laitha0

Der von Ihnen angegebene Befehl wird an stdout ausgegeben. Sie können entweder das -o Parameter, oder leiten Sie Ihre Ausgabe um:

mit -o:

iconv -f UTF-16LE -t UTF-8 infile -o outfile

mit Verrohrung:

iconv -f UTF-16LE -t UTF-8 infile > outfile

Beides ergibt das gewünschte Ergebnis.

Einige Versionen von iconv (z. B. v1 unter macOS) unterstützen jedoch nicht -o Parameter und Sie werden sehen, dass der konvertierte Text in stdout zurückgemeldet wird. Verwenden Sie in diesem Fall die Rohrleitungsoption.

12
A. Blesius