Na moim terminalu Mac drukowanie UTF-8 działa ogólnie, ale less
nie działa poprawnie.
Więc to działa poprawnie:
$ echo -e '\xe2\x82\xac'
€
ale przekazanie go do less daje coś takiego:
$ echo -e '\xe2\x82\xac' | less
<E2><82><AC>
Jak to może zostać naprawione?
Do diagnostyki:
Używam Mac OS 10.6.8. mniej wersja 418, Terminal 2.1.2 (273.1).
Dane wyjściowe moich ustawień regionalnych są następujące:
$ 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
(wyświetlanie „surowych” znaków kontrolnych)less -r
robi to samo, ale również poprawnie obsługuje emoji, coexport LESSCHARSET=utf-8
nie.Jeśli widzisz niektóre znaki Unicode
less
, ale nie możeszless
wyświetlić emoji, spróbuj uaktualnićless
do nowszej wersji. W systemie Mac OS X przeszedłem z wersji 458 na 481 i to rozwiązało mój problem (na przykładgit log
teraz mogę wyświetlać emoji w komunikatach zatwierdzania).Jeśli masz homebrew, możesz rzadziej zastąpić system nowszą wersją, uruchamiając
brew install homebrew/dupes/less
.źródło
brew install less
uaktualnić.Działa dla mnie z
źródło
Poszukałem go i wypróbowałem następujące zmienne środowiskowe, które działały dla mnie:
Widząc, jak znajduję LC_ALL w wielu różnych odpowiedziach, myślę, że to jest poprawna. Ale może nie jedyna prawidłowa odpowiedź, oczywiście mogą istnieć bardziej poprawne odpowiedzi na to pytanie.
W każdym razie trochę googlowania dało mi ten opis zmiennej:
źródło: http://pubs.opengroup.org/onlinepubs/007908799/xbd/envvar.html
Skłania mnie do myślenia, że to zmienna językowa, która rządzi nimi wszystkimi :)
źródło
less
numer wersji.Po prostu zaktualizuj
[less][1]
Zrób to za pomocą naparu.
źródło