Di terminal Mac saya, mencetak UTF-8 bekerja secara umum, tetapi less
tidak berfungsi dengan benar.
Jadi ini berfungsi dengan benar:
$ echo -e '\xe2\x82\xac'
€
tapi memberikannya sedikit seperti ini:
$ echo -e '\xe2\x82\xac' | less
<E2><82><AC>
Bagaimana ini bisa diperbaiki?
Untuk diagnosa:
Saya menggunakan Mac OS 10.6.8. kurang versi 418, Terminal 2.1.2 (273.1).
Output dari lokal saya adalah ini:
$ 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
(menampilkan karakter kontrol "mentah")less -r
melakukan hal yang sama tetapi juga menangani emoji dengan benar, yangexport LESSCHARSET=utf-8
tidak.Jika Anda dapat melihat beberapa karakter unicode
less
, tetapi tidak dapatless
menampilkan emoji, cobalah memutakhirkanless
ke versi yang lebih baru. Di Mac OS X, saya beralih dari versi 458 ke 481 dan itu memperbaiki masalah saya (misalnya,git log
sekarang dapat menampilkan emoji dalam pesan komit).Jika Anda memiliki homebrew, Anda dapat mengganti sistem lebih sedikit dengan versi yang lebih baru dengan menjalankan
brew install homebrew/dupes/less
.sumber
brew install less
mendapatkan pembaruan.Bekerja untuk saya
sumber
Saya mencari di Google dan mencoba variabel lingkungan berikut yang berfungsi untuk saya:
Melihat ketika saya menemukan LC_ALL dalam beberapa jawaban berbeda saya pikir ini adalah yang benar. Tapi mungkin bukan satu-satunya jawaban yang benar, tentu saja ada jawaban yang lebih benar untuk pertanyaan ini.
Pokoknya beberapa googling memberi saya deskripsi ini untuk variabel:
sumber: http://pubs.opengroup.org/onlinepubs/007908799/xbd/envvar.html
Memimpin saya untuk berpikir ini adalah variabel bahasa untuk mengatur semuanya :)
sumber
less
nomor versi.Perbarui saja Anda
[less][1]
Lakukan dengan menyeduh.
sumber