Değişkenin gnome terminali (ve karakter kodlama tercih seçeneği) ile nasıl davrandığını öğrenmeye çalışıyorum $LANG
. Ana karakter setim olarak iso8859-1 (latin1) kullanıyorum ve tüm dosya adlarım bu şekilde kodlandı.
Aşağıdaki testler ls -l
için dosya adlarında İspanyolca aksanlı karakterler içeren bir dizini yapacağım :
Dava 1:
- gnome terminali ISO-8859-1 için yapılandırılmıştır
LANG
"en_US-iso8859-1" olarak ayarla- Sonuç: Tüm dosyaları doğru görüyorum
Dava # 2:
- UTF-8 için yapılandırılmış gnome terminali
LANG
"en_US-iso8859-1" olarak ayarla- Sonuç: Tüm İspanyolca karakterler için çöp karakterler görüyorum. Terminalin karakter kodlamasını değiştirdiğim için bu bekleniyor
Vaka # 3:
- gnome terminali ISO-8859-1 için yapılandırılmıştır
LANG
"en_US-UTF-8" olarak ayarlandı- Sonuç: Tüm İspanyolca karakterler için çöp karakterler görüyorum.
Bu son durumda neden bozuk karakterler görüyorum? Ls çıktısı dosya adlarını oldukları gibi doğrudan gnome terminaline göndermemeli midir? GNOME terminali ISO-8859-1 için yapılandırıldığından, onların doğru görünmelerini beklerdim.
Bir an için, belki de bash'ın $LANG
değişkenimi düşünüp bir dönüşüm gerçekleştirdiğini düşündüm . Sonra terminalimi UTF-8 olarak değiştirdim ancak karakterleri hala doğru göremiyorum. Hatta xsd ls çıkışını piped ve sürpriz için hala oldukları gibi kodlanmış dosyaları görüyorum: ISO-8859-1.
Özetlemek için: Listem ISO-8859-1 karakterleri içeriyorsa ve terminal öykünücüm aynı karakter kodlaması için yapılandırılmışsa: LANG
Aksi ayarlandığında dönüştürme işlemini kim yapıyor ?
Verebileceğiniz herhangi bir yardım için teşekkürler.
Craconia