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.
