En sade sunucu kalıbı çoğu zaman yalnızca C yerel ayarıyla gelir, başka hiçbir şeyle değil. Metin düz İngilizce olduğu sürece her şey yolundadır: derken Arapça bir kayıtta soru işaretine döner, aksanlı bir dosya adı oluşturulamaz, ve sıralama adları hiçbir okurun tanımadığı bir düzene sokar.

Neyin ayarlı olduğuna bakın

locale
locale -a | head

Listede yalnızca C ve POSIX varsa, makinede hiçbir UTF-8 yerel ayarı üretilmemiş demektir.

Bir tane üretin ve ayarlayın

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

Oturumu kapatıp yeniden açın. Değişkenler oturum açılışında okunur; bu yüzden onları ayarladığınız kabuk onları göstermez.

SSH'ten gelen uyarılar

Ayarlanamayan bir yerel ayara dair iletiler genellikle şu demektir: dizüstünüz kendi yerel ayarını, onda bulunmayan bir sunucuya gönderiyordur. Ya o yerel ayarı sunucuda üretin, ya da istemcinin onu göndermesini durdurun.

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

Veritabanı ayrı bir konudur

Sunucunun yerel ayarı, MySQL'in neyi sakladığını değiştirmez. latin1 diye tanımlanmış bir sütun, işletim sistemi nasıl ayarlanırsa ayarlansın Arapçayı ve emojileri bozar — bu konu Karakter kümesi, harmanlama ve emoji tuzağı yazısında ele alınıyor.

Yerel ayarı değiştirmek, bazı programların nasıl sıraladığını da değiştirir. Bir betik sıralama düzenine dayanıyorsa — bir yedek dönüşümü, bir rapor — varsaymak yerine, değişiklikten sonra bir kez denetleyin.