Unicode setlocale ve strftime pencereler başarısız

2 Cevap php

Ben bir sayfa var ve kodlama UTF-8 var ve ben unix sistem everythings bu kodu çalıştırmayı denerseniz iyi görünüyor ama windows çalıştırmayı denediğinizde (7) bazı chracters soru işareti () görünüyor. Nasıl (iconv kullanmadan) iki sistemin hem ince kod çalıştırabilir.

header('Content-Type: text/html; charset=UTF-8');
setlocale(LC_ALL, 'turkish');
echo strftime("%d %B %Y, %H:%M");

2 Cevap

Linux üzerinde benzer sorunlar yaşıyor olanlar için (bu pencereler için de iş ama emin olmayabilir).

Evet 'Türk' var ama 'tr_TR.utf8' da var. Eğer 'tr_TR.utf8' kullanıyorsanız büyük ihtimalle sorunlarınızı yıkanıp edilecektir. Aynı şey 'Rum' için de geçerlidir. Bunun yerine 'el_GR.utf8' kullanın

Linux üzerinde siteniz için doğru ayarları bulmak için yerel listesini kontrol edebilirsiniz.

locale -a

Liste çok uzun ve tüm dilleri göremiyorum, bu yüzden ya, sadece bir dosya haline dökümü ve daha sonra kontrol etmek için dosyayı açabilirsiniz.

locale -a > locale.txt
vi locale.txt

veya belirli bir dil için locale -a | grep languagecode do

locale -a | grep tr

Microsoft, Windows UTF-8 yerellerde desteklemiyor. Eğer Türk yerel sağlamak eğer Yani, belirli bir dili temsilini sağlayan bir 8-bit kod sayfasını pic olur.

Yerel İbranice örneğin bu kod sayfası-1255 pic olur, Türkçe için muhtemelen 1254 olurdu.

Yani, MS-Windows platformu altında bu kullanamazsınız.

Nasıl (iconv kullanmadan) iki sistemin hem ince kod çalıştırabilir.

Muhtemelen MS Windows altında olmayan-utf8 kodlamasını kullanır.