J'ai l'habitude d'utiliser vim pour modifier les fins de ligne d'un fichier:
$ file file
file: ASCII text, with CRLF line terminators
$ vim file
:set ff=mac
:wq
$ file file
file: ASCII text, with CR line terminators
Est-il possible d'utiliser un processus similaire pour modifier l'encodage unicode d'un fichier? J'essaie ce qui suit, ce qui ne fonctionne pas:
$ 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
J'ai vu quelqu'un dire qu'il pouvait "définir fileencoding = utf-8, puis mettre à jour et écrire le fichier, et cela fonctionne", mais il semble que je manque quelque chose, sinon il était confus. Je ne sais pas ce qu'il entendait par «alors mettre à jour».
Notez qu'il y a une différence entre
et
Dans le premier cas, vous allez modifier l'encodage de sortie affiché dans le terminal. Dans le second cas, vous allez modifier l'encodage de sortie du fichier qui est écrit.
la source
set encoding
, et toujours les pages ont montré des caractères mutilés qui étaient bien comme iso-8859-1. l'utilisation aset fileencoding
montré un joli «Latin1»Bien que l'utilisation de vim soit parfaitement possible, pourquoi ne pas simplement utiliser iconv? Je veux dire - charger l'éditeur de texte juste pour faire la conversion d'encodage semble utiliser un marteau trop gros pour un clou trop petit.
Juste:
Et tu as fini.
la source
Tout comme vos étapes, la définition du codage de fichier devrait fonctionner. Cependant, je voudrais ajouter un "set bomb" pour aider l'éditeur à considérer le fichier comme UTF8.
la source
bomb
oubom
peut-il êtreunset
? EDIT : Oui, vous pouvez le supprimer viaset nobomb
.bomb
(avec ab).:set bomb
est activé si:set fenc=utf-8
.. voir:he bomb
Il pourrait être utile de modifier l' encodage uniquement sur la ligne de commande avant la lecture du fichier:
Voir à partir ,
--cmd
.la source
'single quotes'
ne sont nécessaires que pour échapper à tous les méta-caractères, ce qui n'est généralement pas ce que vous voulez.