Soru Bir uçbirimin UTF-8'i destekleyip desteklemediğini öğrenmek


CentOs 5'teki Perl için CPAN modülünü ayarlıyorum ve sorulardan biri de 'Terminaliniz UTF-8'i destekliyor mu?' (Aktarılan). Nasıl öğrenebilirim?


17
2018-05-28 15:47


Menşei




Cevaplar:


Gerçekten, test etmenin kesin yolu, Metin dosyası ve terminalde onu kedi ve her şey yolunda mı bakın.

veya eğer yapabilirseniz, Unicode seçeneğini etkinleştiren terminali yeniden derleyin (bir tane varsayarak).

$ TERM ve $ LANG neye benziyor?


14
2018-05-28 15:58



$ TERM "xterm" $ LANG "en_US.UTF-8" dir (aha!) Metin dosyası terminalde güzel bir şekilde görüntülenir, ama merakla, Firefox'ta değil. - Whatsit
Evet, aslında aynı şeyle karşılaştım: - / ... therek'in önerisini denediğimde soru işaretini aldım - theman_on_osx
$ LANG, stdout / stderr'a yazarken sisteminizin ne kullanacağını söyler. Terminalin yetenekleri hakkında bir şey söylemiyor. Ancak, sisteminizde garip karakterler basarsa, terminaliniz muhtemelen UTF-8'i destekler. - Epcylon
Bu, bazı metinleri görüntüleyerek ve genişliğini kontrol ederek (imleç konumunu önce ve sonra okuyarak) bile otomatikleştirilebilir. Bir yayınladım kavramın ispatı başka bir teklif. - Gilles
@ Gilles, cevabınız zekice basit. Sevdim! - Alhadis


Bunu terminalinize yazın:

echo -e '\xe2\x82\xac' 

Terminaliniz UTF-8'i destekliyorsa, euro işaretini çıkaracaktır:


16
2017-08-06 18:39



Tüm yazı tipleri euro işaretine sahip değildir, bu nedenle farklı bir test kodu noktası tavsiye edilebilir. - Michael Hampton♦


Lamest yolu: takip edin ve çıkışı kontrol edin. Terminal UTF-8'i gösterirse sirkumlu bir başkent O olacaktır.

perl -le 'print "\x{c3}\x{94}"'

4
2018-05-28 16:04



Eminim ki terminalim UTF-8'i destekliyor (theman_on_osx tarafından önerilen testi geçti) ama bu sadece boş bir satır çıktı. Neler oluyor? - Whatsit
Belki de terminal uygulamanızda kullandığınız yazı tipi UTF-8 karakterlerini desteklemiyordur. - therek
Bunun çok geç olduğunu biliyorum ama UTF-8 Out bayrağı bu işi daha iyi yapıyor perl -CO -le 'print "\x{d4}"' - Ashley
Veya -CO seçeneği olmadan, Perl'e doğru UTF-8 bayt verin: $ perl -le 'print' \ x {c3} \ x {94} "'Ô - Tim


En kesin ateş yolu “yerel” komutunu kullanmaktır. Hangi karakter kümesinin kullanılacağını belirleyen çeşitli ve çeşitli değişkenleri basacaktır. Örneğin, bu, varsayılan olarak sadece UTF-8 kullanacak şekilde ayarlanmış RHEL5.3'teki çıkışım.

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_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL=

2
2018-05-28 18:17



Bu, terminali test etmemektedir, sadece yerel ayar (uygulamada her zaman terminal emülatörü tarafından ayarlanmamıştır, terminalin mevcut durumunu yansıtmayabilir veya bazı kullanıcı konfigürasyonları tarafından geçersiz kılınmış olabilir). - Gilles


Aşağıdaki komutu sadece kullanabilirsiniz:

locale charmap

1
2017-07-04 14:28



Bu terminali test etmiyor. Sadece yerel ayarları gösterir. - grawity


curl http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-demo.txt

veya

wget -O - http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-demo.txt

Bu açıkça gerektirir wget veya curl.


1
2017-12-25 10:42





UTF=$(echo -e "\u263A")
if [[ ! "$UTF" =~ "A" ]]  ; then
 echo -n "UNICODE here!"
fi

-1
2018-06-19 23:44



Bu terminali test etmiyor. Sadece sadece echo yerleşik destekler \u. - grawity