alexa  Menu
türkçe karakter sorunu

Türkçe karakter sorunu kesin çözüm!

  29.08.2014 ,   23 yorum ,   90.118 kez okundu.

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.

mysql

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.

23 yorum yapılmış

    "1366 incorrect string value" hatası, türkçe karakter sorunu çözümü | Online Öğren

    […] nedeni var. Buna bağlı olarak da birden fazla çözüm önerisi var tabi. Diğer blog sayfamda türkçe karakter sorunu ile ilgili bir yazı yazmıştım. O yazıda PHP ve MySQL bağalantısı kurulurken nasıl […]

    17.02.2018, 10:10:16

    Alfabetik sıralamada türkçe karakter sorunu

    […] gibi sonuç ortada. Açıklamak gerekirse, ilk satırda sadece sayfamızda türkçe karakter sorunu yaşanmasın diye charset […]

    12.05.2018, 19:02:38

    Türkçe karakter sorunu - büyük İ harfi problemi

    […] önce türkçe karakter sorunu ile ilgili paylaşımım olmuştu ve blog`da en çok okunan yazılardan bir tanesi de o. Bu durum […]

    11.11.2018, 22:05:02

    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:24

    Mert

    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:46

    Raşit Gökce

    Yeni başladım bu işe düzelttiğim ilk sorun 🙂 Teşekkürler hocam

    25.05.2016, 14:56:29

    Gürkan

    Merhaba;
    phpMyadmin 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.

    15.06.2016, 17:20:30

    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){
    $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?=”);
    }

    18.10.2016, 11:58:37

    Elcin

    Qardas bu ə problemini nece hell etmek olar

    24.02.2017, 11:10:39

    Aksiyon

    hocam çok sağol çook işime yaradı sorunu anında çözdüm sayenizde

    12.03.2017, 3:08:03

    SERKAN

    Merhaba E Ticaret sitesi kurdum Ama herkez dolandırdı gerçekte bana yardımcı olurmusunuz
    Favicon 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

    26.05.2017, 16:29:14

    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:11

    Servet

    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:07

    ser163

    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:41

    Özen

    ÇOOOOOOOOOKKKKKKKKKKKKK teşekkür ederim 🙂

    08.05.2018, 18:08:29

    qartex

    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:07

    Sonkan

    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:20

    burak

    Hocam öncelikle merhaba
    mapinfo 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 ?

    06.07.2018, 9:17:28

      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:18

Bir Cevap Yazın


%d blogcu bunu beğendi: