strftime() Türkçe Karakter Hatası ve Çözümü [PHP]

PHP’de türkçe tarih belirlerken setlocale() ve strftime() fonksiyonlarını kullanıyoruz. Örnek vermek gerekirse;

setlocale(LC_TIME, 'tr_TR');
echo strftime('%d %B %Y'); // 28 Eyl�l 2018

Ancak bu bazı sunucularda türkçe karakter hatalarına yol açıyor. Örneğin yukarıdaki çıktıda olduğu gibi.. Bu gibi durumlarda iki şey yapılabilir.

1. çözüm yolu

setlocale() fonksiyonunda 2. parametrede dil ve ülke kodu verilirken nokta ile karakter seti tanımlaması yapılabilir. Örneğin;

setlocale(LC_TIME, 'tr_TR.UTF-8');

Bu problemi ortadan kaldıracaktır.

2. çözüm yolu

srtftime() fonksiyonu utf8_encode() fonksiyonundan geçirilebilir. Örneğin;

setlocale(LC_TIME, 'tr_TR');
echo utf8_encode(strftime('%d %B %Y')); // 28 Eylül 2018

Bugün benim başıma geldi, çözümü arayıp buldum. Yarın sizinde başınıza gelirse bu şekilde halledebilirsiniz. Kolay gelsin 🙂