Le contenu de votre page Web source a été trop reformaté. Le texte a été sans aucun doute censé utiliser (droite) guillemets simples (ASCII 39/0x27
, U+0027
) au lieu de guillemets simples bouclés ( U+2018
et U+2019
, qui sont 0x91 and 0x92
en CP1252 (également connu sous le nom de MS-ANSI et WINDOWS-1252, un codage 8-bit commun sous Windows)) .
Vim vous montre les codes hexadécimaux car ils ne sont pas valides dans le codage que Vim utilise (probablement UTF-8). Si vous modifiez du texte qui a déjà été enregistré dans un fichier, vous pouvez recharger le fichier en tant que CP1252 avec :e ++enc=cp1252
; cela devrait rendre les guillemets bouclés visibles. Mais il n'y a aucune raison de le recharger comme CP1252, il suffit de supprimer les 0x91
et les 0x92
caractères et les remplacer par des guillemets simples.
:e ++enc=cp1252
:e ++enc=cp1252
? Si je veux vi à partir de la ligne de commande un fichier contenant des caractères MS Word, ce serait bien de pouvoir le faire en une seule étape, plutôt que d'ouvrir vi puis de charger le fichier avec la:e
commandevim --cmd 'set fileencodings=cp1252' /path/to/file
- La commande s'exécute avant la normale.vimrc
et définit l'fileencodings
option (notez la fins
; vous pouvez également utiliser le nom plus courtfencs
) afin que Vim n'essaye que CP1252 lors du chargement des fichiers. Cela devrait fonctionner pour l'édition unique de ces fichiers, mais cela peut entraîner des complications si vous souhaitez utiliser cette instance de Vim pour éditer des fichiers avec d'autres encodages.vim -c"set fencs" /path/to/file
91 et 92 sont les codes hexadécimaux pour l'apostrophe bouclée ouverte et fermée (guillemet simple) dans la version par défaut MS Windows de l'encodage latin1 / ISO-8859-1, qui est plus spécifiquement appelé cp1252 / Windows-1252 (où cp représente le code page).
Ces caractères sont le plus souvent insérés par des personnes qui copient du contenu à partir de documents Word / e-mails Outlook dans le cadre de la fonctionnalité "Citations intelligentes". Les autres caractères problématiques de cette page de codes sont l'hex 93/94 qui sont des guillemets doubles ouverts et fermés, une puce (•) et une ligature OE (œ et Œ). Vous pouvez voir une liste complète des "caractères problématiques", ceux qui ne correspondent pas directement à ISO-8859-1 ou UTF-8 avec le même code, sur la page Wikipeda pour cp1252 surlignée en vert.
Si tout ce que vous voulez est d'ouvrir le fichier dans l'encodage correct, utilisez l'option ++ enc = cp1252 pour la commande: e:
Vous pouvez remplacer un mauvais code hexadécimal particulier dans Vim avec la commande de substitution (: s) et l'une des substitutions de code:
Pour modifier les caractères hex 91/92, vous devez faire:
la source
sed -i "s/[\x91\x92]/\'/g" *.txt
mais cela n'a pas fonctionné.perl -p -i -e "s/[\x91\x92]/'/g" *.txt
sed -i "s/\x92/'/g"
travaillé pour moi.Utilisez
iconv
pour convertir le fichier texte de CP1252 en UTF-8 avant de l'ouvrir.Sur Mac OS, utilisez ceci:
la source
Ils représentent en fait les hex 91 et 92, qui dans la page de code Windows ouvrent et ferment les guillemets simples ('et' - Alt-0145 et Alt-0146).
Essayez la recherche / remplacement suivante:
la source