2012-02-16 10 views
75

Ho un file di testo. Mi è stato detto di renderlo UTF8. Come posso farlo con Vim?Come posso usare vim per convertire il mio file in utf8?

+0

possibile duplicato del [opzioni di codifica di Vim] (http://stackoverflow.com/questions/8121609/vims-encoding-options) – Benoit

+0

possibile duplicato del [Come posso cambiare la codifica di un file con vim?] (Http://stackoverflow.com/questions/778069/how-can-i-change-a-files-encoding-with-vim) – Tonin

risposta

111

Se si modifica un file codificato come latin1, si scoprirà che "fileencoding" per quel buffer è impostato su latin1. Quindi sarà necessario impostare manualmente la codifica del file prima di salvare il file.

:set fileencoding=utf8 
:w myfilename 

Si noti inoltre che i file UTF8 iniziano spesso con un Byte Order Mark (BOM) che indica endianness. Il BOM è opzionale ma alcuni programmi lo usano esclusivamente per determinare la codifica del file. In determinate condizioni Vim scriverà il BOM ma a volte non lo farà. Per impostare in modo esplicito il BOM fare questo:

:set bomb 

Per ulteriori informazioni :help mbyte-options e :help utf8 e :help bomb.

+7

Qualcuno ci ha installato la bomba. – pfrenssen

28
:w ++enc=utf-8 % 

per scrivere il file in codifica utf-8 su disco.

+0

Ho provato questo e funziona. Grazie! –

+3

Anche se questo è corretto, la tua risposta non avrebbe dovuto raccogliere così tanti voti rispetto a quelli di Eric Johnson. Il motivo è che se non si imposta 'fileencoding',': w ++ enc = utf-8' è valido una volta, ma la volta successiva che si esegue ': w', il valore di' 'fileencoding'' sarà essere usato, e se non lo hai cambiato (esplicitamente durante il montaggio, o ricaricando il file, sperando che ''fencs'' sia impostato correttamente e la codifica effettiva sia ben rilevata), la vecchia codifica tornerà. – Benoit

+0

@Benoit, non cambio 'fileencoding', perché sto rispondendo alla domanda, non solo raccontando tutto ciò che so sulle codifiche e su come funziona con loro. Potrebbe volerci un po '. –

Problemi correlati