Bu yazımda aslında artık bu sorunu yaşamıyoruz diye düşündüğüm, fakat son günlerde çok karşılaştığım için paylaşma gereği duyduğum “Türkçe Karakter” sorununu çözmek için neler yapabileceğimizi paylaşacağım.
Paylaşacağım işlemleri yaparak hem sayfanızdaki, hem de veritabanınızdaki sorunları çözmüş olacağız.
Öncelikle oluşturmuş olduğunuz sayfalarınızda her zaman met etiketi kullanarak karakter kümesini belirtiniz. Bunun için meta etiketinizi tüm sayfalarınızda head etiketleri arasına yazmanız gerekiyor.
<head>
<meta charset="UTF-8"/>
</head>
Yukarıda yazmış olduğum HTML kodları HTML 5 için geçerlidir.
HTML 5`ten daha önceki sürümler için aşağıdaki meta etiketini head etiketleri arasında kullanabilirsiniz:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Şimdi gelelim işin PHP daha doğrusu MySQL kısmına. Sayfamızda elle eklediğimiz yazılarda türkçe karakter sorunu yaşamamamız için yukarıda belirtmiş olduğum meta etiketini kullanmamız işimizi görecektir. Fakat php ile kodladığımız bir sayfada MySQL veritabanına eklemeye çalıştığımız verilerde türkçe karakter sorunu yaşamamak için de birkaç işlem yapmamız gerekir.
Öncelikle veritabanı oluştururken karşılaştırma bölümünden utf8_turkish_ci seçmemizde fayda var.
Ardından php ile yazacağınız veritabanı bağlantı kodlarından sonra SET NAMES UTF8 sorgusunu çalıştırmamız gerekiyor. Veritabanı bağlantı kodları ve sorgumuz aşağıdaki gibi olacaktır:
<head>
<meta charset="UTF-8"/>
</head>
Fakat bir hususu unutmamamız gerekiyor. Eğer kodlarınızı yazdıysanız ve türkçe karakter sorunu yaşıyorsanız mysql bağlantınızdan sonra “SET NAMES UTF8” sorgusunu kodlarınıza sonradan ilave ettiyseniz, o zaman sorununuz çözülse bile veritabanındaki bilgileriniz artık sorunlu kaydedildiği için, o bilgileri güncellemeniz gerekebilir.
Evet bu işlemleri yaptıktan sonra sayfanızda türkçe karakter sorunu yaşamamanız gerekmektedir. Tabiki %100 sorun olmayacak demek mümkün değil ancak açıkcası ben şuana kadar yaşamadım 🙂
İyi çalışmalar.
Kemal Cagayan
merhaba.. Aynen DediğinizGibi yaptım ama… Elimdeki sistem bir Portal. içerik eklediğimde Örneğin ” YAĞMUR ” Kelimesini kullanmıssam. Mysql da bu veri su sekılde kayıt oluyor “YA” yani “Ğ” Harfinden sonrası yok… Veryi Siteme çektiğimde de “YA” yazıyor gerisi yok..
08.11.2015, 5:37:24Mert
Merhaba,
Yaptığım kontrollerde tüm yazdıklarınızı yaptığımı gördüm. Verileri düzgün çekip kaydedebiliyorum fakat range(‘A’, ‘Z’) fonksiyonundan ingiliz alfabesi çıkıyor. Bu konuda yardımcı olabilir misiniz?
20.03.2016, 0:25:46Anar SAMADOV
Alfabetik sıralamada türkçe karakter sorunu başlıklı yazımı okuyabilirsiniz 🙂
20.03.2016, 14:17:19sahib
o gagaş uğurlar Azərbaycanlılara tam dəsdək bu mövzuda
01.12.2019, 10:01:34Raşit Gökce
Yeni başladım bu işe düzelttiğim ilk sorun 🙂 Teşekkürler hocam
25.05.2016, 14:56:29Gürkan
Merhaba;
15.06.2016, 17:20:30phpMyadmin deki tablolarda Türkçe karakter konusunda sıkıntı yok. Sayfanın görüntülenmesinde de sıkıntı yok. Fakat phpMyadmin içindeki bir tabloya dışarı aktar csv ms Excel yap dediğim zaman ğ,ü,ş,ç,ö,ı harfleri başka şekiller çıkarıyor. Bunu nasıl düzeltirim.
Bilal
ben bu şekilde bir fonksiyon oluşturdum. mail gönderirken türkçe karakter sorunu oluyordu. sorunun çözümü hexodecimal karakter tablosunda…
function utf8($isim){
18.10.2016, 11:58:37$bulunacak = array(chr(105),chr(73),’ç’,’Ç’,chr(305),chr(304),’ğ’,’Ğ’,’ü’,’Ü’,’ö’,’Ö’,’ş’,’Ş’,’ ‘);
$degistir = array(‘=69′,’=49′,’=C3=A7′,’=C3=87′,’=C4=B1′,’=C4=B0′,’=C4=9F’,’=C4=9E’,’=C3=BC’,’=C3=9C’,’=C3=B6′,’=C3=96′,’=C5=9F’,’=C5=9E’,’=20′);
$isim=str_replace($bulunacak, $degistir, $isim);
return(“=?utf-8?Q?$isim?=”);
}
Elcin
Qardas bu ə problemini nece hell etmek olar
24.02.2017, 11:10:39Anar SAMADOV
Türkçe karakter sorunu yəni bu yazı eyni zamanda Ə hərfi üçün də keçərlidir.
24.02.2017, 15:51:38Aksiyon
hocam çok sağol çook işime yaradı sorunu anında çözdüm sayenizde
12.03.2017, 3:08:03SERKAN
Merhaba E Ticaret sitesi kurdum Ama herkez dolandırdı gerçekte bana yardımcı olurmusunuz
26.05.2017, 16:29:14Favicon Canonical Malesef! H1 etiketiniz bulunamadı. Çalıştığınız anahtar kelime H1 etiketinde yer vermeniz gerekmektedir.
SEO HOCASINDA ANALİZ YAPIYORUM SİTEMDE BUNLAR EKSİK DİYOR BİRDE ADWORDS HESABI BANA AÇACAK BİRİ VARSA
Emre
Php ile mssql e bağlanıyorum. odbc_connect(); Dolayısıyla mysl komutları geçerli değil. Diğer ayarlar problemi çözmek için yeterli olmadı. Yapabileceğimiz başka bir şey var mıdır.
13.06.2017, 8:40:11Servet
Hocam db’den veri çekerken script yerine scriplet kullanmanız pek akıllıca değil umarım farkındasınızdır bunun. Uyarayım dedim
02.03.2018, 15:47:07ser163
hocam php kodları ile andorid uygulamamın bağlantısını sağladım ancak birtürlü verileri doğru kaydedemedim. Kayıt olan veriler karakter hatası şeklinde bozuk kayıt olmakta ayrıca % işareti gibi verilerde veri tabanına kayıt olmamaktadır. Kodlarımın arasına mysql_query(“SET NAMES ‘utf8’”); mysql_query(‘SET NAMES “utf8″‘);
mysql_query(‘SET CHARACTER SET utf8’); mysql_query(‘SET COLLATION_CONNECTION = “utf8_turkish_ci”‘); , mysqli_set_charset ($dbc, “utf8”); bunun gibi birçok kodu php kodlarımın arasına eklememe rağmen sorun çözülmedi. PhpAdmin sayfasında da karşılama dilini utf8_general_ci ve utf8_turkish_ci olarak değiştirmeme rağmen sorun çözülmedi.
Acaba deneme amaçlı kullandığım hosting servisinde mi bir sorun var? konu ile alaklı olarak yardımcı olabilirmisiniz?
Aşağıda php kodlarımı paylaşıyorum. Yardımcı olabilirmisiniz? Herşeyi denedim ancak başarılı olamadım
06.03.2018, 13:12:41Anar SAMADOV
Bir de bu videoyu inceleyin isterseniz: http://www.onlineogren.com/1366-incorrect-string-value-hatasi-turkce-karakter-sorunu-cozumu.html
07.03.2018, 9:28:53Özen
ÇOOOOOOOOOKKKKKKKKKKKKK teşekkür ederim 🙂
08.05.2018, 18:08:29qartex
bunların hepsi sitemin veri tabanında baglantı kurulan php dosyamda ve head etiketinin içinde mevcut. şöyle bir sorun yaşıyorum ki formdan veri gönderdikten sonra türkçe olan karakterler okunmuyor. örneğin id name ad olan bir input a veri girip gönderdiğimde, input un ve formun bulunduğu sayfa ve verinin bulunduğu tablo sayfasındaki türkçe karakterler okunmuyor. Bununla ilgili bir çözüm varsa lütfen paylaşınız. bu arada sitenin arka planındaki renk sürekli değişiyor çok iyi 😀
01.06.2018, 1:31:07Anar SAMADOV
Sorununuzu tam olarak anlamak için görsel kod birşeyler paylaşırsanız daha iyi yardımcı olabilirim.
01.06.2018, 22:15:01Sonkan
mysql_query(“SET NAMES UTF8”); Ekledim ve bilgilerimi güncelledim. tekrar tabloya yeni bilgiler girdim hiç bir sorun kalmadı çok çok teşekkür ederim ramazan bayramınız mübarek olsun.. Allah razı olsun..
15.06.2018, 23:54:20burak
Hocam öncelikle merhaba
06.07.2018, 9:17:28mapinfo kullanıcısıyım dosyaları excele aktarırken türkçe karakterler bozuk geliyor aynı sorun shp. uzantısına çevirincede yaşıyorum ne yapmalıyım ? yardımcı olur musunuz ?
Anar SAMADOV
bu konudakı çözüm mysql ile ilgili aslında. shp dosyasında durum farklıdır muhtemelen ama kullanmadığım için yardımcı olamayacağım kusura bakmayın :/
06.07.2018, 13:42:18Uğur
Merhaba belirttiğiniz üzere gerekli düzenlemeleri yaptım ancak örneğin daha önce soru işareti ? şeklişnde görünen türkçe karakterler şimdi hiç çıkmıyor mesela Satış kelimesi Sat olarak görünüyor. Düz html ile basit bir sayfa kodlaması. Nasıl yapabilirim başka ? adres : domain.ugurbesir.com
29.12.2018, 20:41:32Anar SAMADOV
Sayfada sorun görmedim halletmişsiniz galiba. ))
30.12.2018, 21:07:42Murat Slçuk
Nodemcu ile yapmaya çalıştığım küçük bir uygulamada Türkçe karakter sorunu yaşıyordum. Sayenizde çok bilgim olmayan bu konuda, meseleyle boğuşmadan, kestirmeden sorunu aştım. Değerli arkadaşım, size yaptığınız katkı için çok teşekkür ediyor, çalışmalarınızın ışık saçmaya devam etmesini diliyorum. Saygılar sunuyorum.
10.09.2019, 6:14:53Anar SAMADOV
Teşekkür ederim, yardımcı olabilmişsem ne güzel.
10.09.2019, 9:14:45