Auf meinem Mac-Terminal funktioniert das Drucken von UTF-8 im Allgemeinen, aber das less
funktioniert nicht richtig.
Das funktioniert also richtig:
$ echo -e '\xe2\x82\xac'
€
Aber wenn man es in weniger leitet, sieht es so aus:
$ echo -e '\xe2\x82\xac' | less
<E2><82><AC>
Wie kann das behoben werden?
Zur Diagnose:
Ich verwende Mac OS 10.6.8. weniger Version 418, Terminal 2.1.2 (273.1).
Die Ausgabe meines Gebietsschemas lautet wie folgt:
$ locale
LANG="en_US.UTF-8"
LC_COLLATE="C"
LC_CTYPE="C"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL="C"
less -r
(Anzeige "roher" Steuerzeichen)less -r
macht das selbe aber handhabt auch emojis richtig, wasexport LESSCHARSET=utf-8
aber nicht geht.Wenn Sie einige Unicode-Zeichen in sehen, Emoji
less
jedoch nichtless
anzeigen können, führen Sie ein Upgradeless
auf eine neuere Version durch. Unter Mac OS X bin ich von Version 458 auf 481 übergegangen und das hat mein Problem behoben (zum Beispielgit log
kann jetzt Emoji in Commit-Nachrichten angezeigt werden).Wenn Sie Homebrew haben, können Sie das System weniger durch eine neuere Version ersetzen, indem Sie ausführen
brew install homebrew/dupes/less
.quelle
brew install less
das Upgrade erhalten.Funktioniert bei mir mit
quelle
Ich habe das gegoogelt und die folgenden Umgebungsvariablen ausprobiert, die für mich funktionierten:
Da ich den LC_ALL in mehreren verschiedenen Antworten finde, denke ich, dass dies der richtige ist. Aber vielleicht nicht die einzig richtige Antwort, es könnte natürlich richtigere Antworten auf diese Frage geben.
Noch ein bisschen googeln gab mir diese Beschreibung für die Variable:
Quelle: http://pubs.opengroup.org/onlinepubs/007908799/xbd/envvar.html
Führe mich zu der Annahme, dass dies die Sprachvariable ist, die sie alle regiert :)
quelle
less
die Versionsnummer an.Aktualisiere dich einfach
[less][1]
Mach es mit brauen.
quelle