Citra server yang paling ringkas sering hanya membawa lokal C dan tidak yang lain. Semuanya bekerja sampai teksnya bukan bahasa Inggris polos: tulisan Arab jadi tanda tanya di dalam log, nama berkas berdiakritik tak bisa dibuat, dan pengurutan menaruh nama pada susunan yang tak dikenali pembaca mana pun.

Lihat apa yang sudah disetel

locale
locale -a | head

Kalau daftarnya cuma berisi C dan POSIX, berarti tak ada lokal UTF-8 yang dibangkitkan di mesin itu.

Bangkitkan satu dan setel

sudo apt-get install -y locales
sudo locale-gen en_US.UTF-8 ar_EG.UTF-8
sudo update-locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8

Keluarlah lalu masuk lagi. Variabelnya dibaca saat masuk, jadi cangkang tempat Anda menyetelnya takkan menampilkannya.

Peringatan yang datang dari SSH

Pesan tentang lokal yang tak bisa disetel biasanya berarti laptop Anda mengirim lokalnya sendiri ke server yang tak memilikinya. Bangkitkan lokal itu di servernya, atau hentikan kliennya dari mengirimkannya.

# on your machine, ~/.ssh/config
Host *
    SendEnv -LANG -LC_*

Basis datanya persoalan tersendiri

Lokal server tak mengubah apa yang disimpan MySQL. Kolom yang dinyatakan latin1 akan merusak tulisan Arab dan emoji, disetel apa pun sistem operasinya — itu dibahas di Kumpulan karakter, kolasi, dan jebakan emoji.

Mengubah lokal juga mengubah cara sebagian program mengurutkan. Kalau sebuah skrip bergantung pada urutan itu — perputaran cadangan, sebuah laporan — periksalah sekali sesudah perubahannya, jangan cuma diandaikan.