Bu konuyu yazmamın nedeni inşallah Google tarafından bu konu ilk sıralarda indexlenir de benim gibi diğer bu sorunu yaşayan geliştiricilerin zamanının çoğunu bu sorunu çözmek için harcamasının önüne geçmiş olurum, ufak da olsa bi yardımım dokunur diyedir.

Bu gün geliştirmekte olduğum mobil uygulama için web servis yazarak verileri json olarak almam gerekiyordu. Saat 13:00 civarında bilgisayar başına oturdum ve yazmaya başladım. Web servisi bitirdim verileri json olarak gördüm ancak gelen verilerde Türkçe karakter sıkıntısı vardı. O saatten bu yana zamanımı sadece bir Türkçe karakter sıkıntısını çözmek için harcadım. Günüm araştır - dene metoduyla geçti. Kullandığım ide de, kodlarda ve Veritabanında tablolarda vs. çeşitli değişiklikler - eklemeler yaptım ancak sorun çözülmedi. Ufak bi çay molasından sonra tekrar yatayı çözmeye koyuldum ve en sonunda nihayet hatayı çözdüm. Hata web servisleri yazmak için kullandığım Phpstorm yüzünden oluşuyormuş. Phpstorm'da karakter setini utf-8 olarak ayarlamama rağmen dosyayı utf-8 olarak kaydetmiyordu. En son dosyayı notepad ++ ile açarak utf-8 olarak tekrar kaydettim ve sorun çözüldü. Ne diyim Allah benim gibi yazılımcılara sabır versin

Ama gene de : Zoru çözeriz, İmkansız biraz zaman alır

Ayrıca bu hatayı alan kişilere bir kaç çözüm önerisi:
1- İlk olarak kullandığınız ide'nin dosyanızı utf-8 olarak kaydettiğine emin olun. Hatta benim gibi başka bir ide veya editör ile utf-8 ile kaydetmeyi deneyin.
2- Veritabanında oluşturmuş olduğunuz tabloları utf8_turkish_ci veya utf8_general_ci olarak kaydettiğinizden emin olun.
3-Veritabanı bağlantısı yaparken alttaki gibi charset tanımlamasını yaptığınızdan emin olun.

$conn->set_charset("utf8");
4- Eğer verileri json olarak alacaksanız verileri aşağıdaki şekilde bastırın.

header('Content-Type: application/json; charset=utf-8');
print json_encode($data,JSON_UNESCAPED_UNICODE );