web-dev-qa-db-fra.com

Vim montre des caractères étranges <91>, <92>

Tout en utilisant Vim sur SSH, j'ai copié un contenu d'une page Web à ma session SSH/VIM et obtenu le résultat suivant:

SIZE=`df -h|grep $DISC|awk <91>{print $2}<92>`

Apparemment <91> et <92> représenter ' Mais comment puis-je rechercher et remplacer ce matériel? Et qu'est-ce que 91/92 signifier? Comment cela est codé parce que 91/92 IN ASCII signifie \ et [?

27
Jeremy S.

Le contenu de votre page Web source a été trop reformaté. Le texte était sans aucun doute censé utiliser des guillemets simples (droites) (ASCII 39/0x27, U+0027) au lieu de citations simples bouclées (U+2018 et U+2019, qui sont 0x91 and 0x92 Dans CP1252 (également appelé MS-ANSI et Windows-1252; un codage commun 8 bits sur Windows)).

VIM vous montre les codes hexagonaux car ils ne sont pas valables dans tout ce que le codage VIM utilise (probablement UTF-8). Si vous modifiez du texte qui a déjà été enregistré dans un fichier, vous pouvez recharger le fichier sous CP1252 avec :e ++enc=cp1252; Cela devrait rendre les citations bouclées visibles. Mais il n'y a pas de raison réelle de le recharger comme CP1252, supprimez simplement le 0x91 et 0x92 caractères et remplacez-les avec des guillemets simples.

25
Chris Johnsen

Utilisez iconv pour convertir le fichier texte de CP1252 en UTF-8 avant d'ouvrir.

iconv -f cp1252 -t utf8 inputfile.csv > outputfile.csv

Sur Mac OS, utilisez ceci:

iconv -f cp1252 -t UTF8-MAC inputfile.csv  > outputfile.csv
3