Saya mencoba mempelajari bagaimana $LANG
variabel berperilaku dengan terminal gnome (dan opsi preferensi pengkodean karakternya). Saya telah menggunakan iso8859-1 (latin1) sebagai set karakter utama saya dan semua nama file saya dikodekan seperti itu.
Untuk pengujian berikut saya akan melakukan ls -l
direktori dengan karakter beraksen Spanyol di nama file mereka:
Kasus 1:
- gnome-terminal dikonfigurasi untuk ISO-8859-1
LANG
set ke "en_US-iso8859-1"- Hasil: Saya melihat semua file dengan benar
Kasus # 2:
- gnome-terminal dikonfigurasi untuk UTF-8
LANG
set ke "en_US-iso8859-1"- Hasil: Saya melihat karakter sampah untuk semua karakter Spanyol. Ini diharapkan ketika saya mengubah pengkodean karakter untuk terminal
Kasus # 3:
- gnome-terminal dikonfigurasi untuk ISO-8859-1
LANG
set ke "en_US-UTF-8"- Hasil: Saya melihat karakter sampah untuk semua karakter Spanyol.
Mengapa dalam kasus terakhir ini saya melihat karakter kacau? Bukankah seharusnya output dari ls mengirim nama file langsung ke terminal gnome? Dan karena gnome-terminal dikonfigurasi untuk ISO-8859-1, saya akan berharap mereka terlihat benar.
Untuk sesaat saya berpikir, mungkin, mungkin bash sedang mempertimbangkan $LANG
variabel saya dan melakukan beberapa konversi. Kemudian saya pindah terminal saya ke UTF-8 tetapi saya masih tidak dapat melihat karakter dengan benar. Saya bahkan menyalurkan output ls ke xxd dan yang mengejutkan saya, saya masih melihat file-file tersebut disandikan sebagai: ISO-8859-1.
Untuk menyelesaikannya: Jika daftar saya mengandung karakter ISO-8859-1 dan emulator terminal saya dikonfigurasi untuk pengkodean karakter yang sama: Siapa yang melakukan konversi ketika LANG
diatur sebaliknya?
Terima kasih atas bantuan yang Anda berikan.
Craconia