Ich bin es gewohnt, mit vim die Zeilenenden einer Datei zu ändern:
$ file file
file: ASCII text, with CRLF line terminators
$ vim file
:set ff=mac
:wq
$ file file
file: ASCII text, with CR line terminators
Ist es möglich, mit einem ähnlichen Verfahren die Unicode-Codierung einer Datei zu ändern? Ich versuche Folgendes, was nicht funktioniert:
$ file file.xml
file.xml: Unicode text, UTF-16, little-endian
$ vim file
:set encoding=utf-8
:wq
$ file file.xml
file.xml: Unicode text, UTF-16, little-endian
Ich sah jemanden sagen , er könne "fileencoding = utf-8 setzen, dann die Datei aktualisieren und schreiben, und es funktioniert", aber mir scheint etwas zu fehlen, oder er war verwirrt. Ich weiß nicht, was er mit "dann aktualisieren" gemeint hat.
Beachten Sie, dass es einen Unterschied zwischen gibt
und
Im ersten Fall ändern Sie die im Terminal angezeigte Ausgabecodierung. Im zweiten Fall ändern Sie die Ausgabecodierung der geschriebenen Datei.
quelle
set encoding
, und dennoch zeigten die Seiten verstümmelte Zeichen, die in Ordnung waren wie ISO-8859-1. usingset fileencoding
zeigte ein hübsches 'Latin1'Wenn Sie vim verwenden, ist dies durchaus möglich. Warum verwenden Sie nicht einfach iconv? Ich meine - das Laden eines Texteditors, nur um die Codierungskonvertierung durchzuführen, scheint zu viel Hammer für zu kleine Nägel zu verwenden.
Gerade:
Und du bist fertig.
quelle
Genau wie bei Ihren Schritten sollte das Festlegen der Dateicodierung funktionieren. Ich möchte jedoch eine "Set Bomb" hinzufügen, damit der Editor die Datei als UTF8 betrachtet.
quelle
bomb
oderbom
und kann es seinunset
? EDIT : Ja, Sie können es über entfernenset nobomb
.bomb
(mit ab) eingerichtet.:set bomb
ist eingeschaltet, wenn:set fenc=utf-8
.. siehe:he bomb
Es kann nützlich sein, die Codierung direkt in der Befehlszeile zu ändern , bevor die Datei gelesen wird:
Siehe Start ,
--cmd
.quelle
'single quotes'
werden nur benötigt, um alle Metazeichen zu maskieren, was normalerweise nicht das ist, was Sie wollen.