7
votes

Messchaset = utf-8 moins ne semble pas fonctionner

J'essaie de visualiser un fichier texte UTF-8 / flux dans moins code>, et même si je l'invoque comme ceci:

en_AU.US-ASCII
en_CA.US-ASCII
en_GB.US-ASCII
en_NZ.US-ASCII
en_US
en_US.ISO8859-1
en_US.ISO8859-15
en_US.US-ASCII
en_US.UTF-8


0 commentaires

6 Réponses :


9
votes
  1. Qu'est-ce que la commande locale la commande? Est-ce une locale UTF-8?

  2. Êtes-vous sûr que votre terminal est défini sur l'écran UTF-8? Est-ce que écho -e '\ xe2 \ x82 \ xac' produit le signe € (euro)?

  3. est la locale que vous avez définie même installée sur le système? Est-ce présent dans la liste que locale -a sorties?

  4. Quelle version de moins utilisez-vous? (Exécutez moins --Version pour le savoir.) vraiment , vraiment anciennes versions n'a même pas pris en charge réduction . Cette est moins susceptible d'être le cas, car j'ai un système «Sarge» Debian avec moins version 382, ​​et il n'a même pas besoin de réduction de la réduction si la locale est régler correctement.


7 commentaires

Lang = "EN_US.UTF-8" LC_COLLATE = "EN_US.UTF-8" LC_CTYPE = "EN_US.UTF-8" LC_MESSAGES = "EN_US.UTF-8" LC_MONETARY = "EN_US.UTF-8" LC_NUMERIF = "EN_US. Utf-8 "lc_time =" EN_US.UTF-8 "LC_All =


Oui, echo -e '\ xe2 \ x82 \ xac' produit le signe de l'euro.


Merci d'avoir essayé de comprendre cela pour moi. J'ai répondu à vos questions ci-dessus.


@Dan juste pour vérifier, echo -e '\ xe2 \ x82 \ xac' imprime le signe de l'euro, mais écho -e '\ xe2 \ x82 \ xac' | Moins imprime une boîte?


En fait, Echo -e '\ xe2 \ x82 \ xac' | Moins fonctionne correctement et affiche un panneau d'euros. Cela m'a aidé à trouver une partie du problème. Le fichier que je suis testé a été codé en réalité en latin-1 et j'étais mal à la recherche de la valeur de Vim de la valeur plutôt que de la valeur VIM FileCoding pour déterminer son codage. Code MOCKARSET = Latin1 MOINS DE FICHIER Affiche maintenant ? Diamants où le caractère ü devrait être. Je suppose que c'est comme ça devrait être?


Dans mon cas, les réponses sont les suivantes: 1 -> Oui, tout utf-8 locale, 2 -> Je vois le signe €, 3 -> Oui c'est, 4 -> Version 444. Mais je devrais ajouter fichier < / Code> dit que c'est utf-8 unicode texte anglais , et que écho -e 'ꝍ' | Moins montre . Pourquoi ne peut-je pas voir le uniquement à l'intérieur moins ?


@Rubencaro Dans ce cas, je soupçonne un bogue dans Moins ou que vos fichiers de définition de paramètres régionaux sont trop anciens pour ce caractère de Unicode 5.1.



5
votes

Je suppose que votre fichier n'est pas UTF8 mais plutôt ISO8859. (Est le le caractère supposé être un «ô»?)

Démarrer un xterm avec lang = en_us.iso-8859-1 xterm . Vérifiez ensuite la locale (la sortie de locale devrait être quelque chose comme EN_US.ISO-8859-1). Ensuite, utilisez moins pour afficher le fichier. Est-ce qu'il affiche correctement?

Notez qu'il ne suffit pas d'utiliser moinscharset = iso8859 sans démarrer un nouveau terminal. Messchaset indique moins à penser que le terminal peut interpréter ISO8859, mais votre terminal affiche probablement UTF8, puisque le panneau EURO s'affiche correctement. Mais comme \ XF4 n'est pas un caractère UTF8 valide, le terminal montrera probablement quelque chose comme '�'.


1 commentaires

Merci, c'était le problème pour moi. Le terminal avait un codage de sortie différent que moins. J'aimerais qu'il y ait un moyen de dire moins à lire le fichier dans un codage et de générer son contenu dans un autre (ou par défaut, tel que celui de $ Lang !).



2
votes

Essayez la commande fichier fichier.txt . Si, par exemple, la sortie est "Texte anglais ISO-8859", changez le codage du fichier iSO-8859 en UTF-8 via la commande iconv -f iso-8859-1 -t utf-8 - o testfile.txt file.txt . Si moins testfile.txt affiche correctement, finissez avec mv testfile.txt fichier.txt . .


0 commentaires

3
votes

sur Mac OS Un nom de Charset doit être en majuscule: xxx

ICI J'ai trouvé une liste de caractréets: xxx

et une liste de la liste correspondante alias pour eux: xxx


0 commentaires

0
votes

a travaillé pour moi:

f='path/to/file/filename.extension'; LESSCHARSET=`file -b --mime-encoding ${f}|tr '[:lower:]' '[:upper:]'` less ${f}


0 commentaires

0
votes

moins -r affiche le fichier correctement pour moi. XXX


0 commentaires