Php ve Mysql’de Türkçe karakter sorunu ve çözümü

Ocak25

Web sayfamızı oluşturmadan önce hangi karakter setini kullanacağımıza karar vermek gerekir. http://www.iana.org/assignments/character-sets adresinden de görebileceğiniz üzere standartlaşan onlarca karakter kodlaması vardır. Karakter kodlaması, karakter setlerinden oluşur. ISO-8859, MS-Windows ve Unicode en çok kullanılan karakter kodlamalarındandır. ISO-8859-9′da bir ISO-8859′un bir karakter setidir.

ISO-8859 karakter seti dillere desteğini bölümler halinde vermiştir. İlk bölümde -bu bölüm ISO-8859-1 (Latin1) olarak bilinir- İngilizce, Franszıca, İspanyolca, Portekizce gibi dillere destek vermiştir. Türkçe desteği ancak 9. bölümde ISO-8859-9 (Latin5) karakter setiyle gelmiştir. MySQL’de bulunan latin5 ile ISO-8859-9 aslında aynı şeylerdir.

Türkçe diline destek veren karakter setlerinden en çok kullanılanları; ISO-8859-9 (latin5) Windows-1254 ve UTF-8’dir. UTF-8 çoklu dil desteği olan bir karakter setidir. Yani Türkçe’nin yanında örneğin Rusça’ya da destek vermektedir. Diğerlerinden farkı daha çok dile destek verdiğinden dosya büyüklükleri biraz daha fazla olabilmektedir.

Şimdi bir siteye başlamadan önce Türkçe karakter problemi ile karşılaşmamak için yapmanız gerekenlere sırayla bakalım.

Sitemizi oluşturmaya başlamadan önce açık kaynak kodlu bir yazılım olan Notepad++ (http://notepad-plus-plus.org/) programını kurmanızı öneririm. Bu programı kullanarak sitemizin tüm karakterlerinizin bozulmasına neden olabilen UTF-8 BOM (Byte Order Mark) sorununu ortadan kaldıracağız.

Html ve php dosyalarımızı yazarken karakter setini UTF-8 kullanmak; her ülkeden ve dilden kullacılarının sitemizi ziyaret ederken karakter sorunları ile karşılaşmamasını sağlar.

Sitenizi oluşturmaya, html ve php kodlarınızı yazmaya başlamadan önce Notepad++’ı açıp Format menüsünden UTF-8 without BOM‘u seçin ve dosyalarınızı utf8 formatını kullanarak yazın. Notepad++’ın Settings>Preferences>New Document bölümünden de her yeni dosya oluştururken dosya formatının otomatik olarak utf-8 without bom olmasını sağlayabiliriz.

Daha sonra html kodlarınızı yazmaya başlayabilirsiniz. HTML ile de sayfanızın karakter setini UTF-8 olarak ayarlamanız gerekiyor. Etiketlerinin arasına yerleştireceğiniz aşağıdaki kod ile bu işi yapacağız.

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Şimdi MySQL veritabanımızı oluşturalım.. Veritabanımızı oluştururken Karşılaştırma bölümünden utf8_turkish_ci yi seçmenizi öneriyorum. Böylelikle MySQL’de oluşturacağınız tüm tablo ve alanlar utf8 kodlamasına göre oluşturulacak. Artık MySQL’den veri girişi yaptığınızda Türkçe karakter problemi olmadan verilerinizi görebiliyor olmalısınız.

PHP kodlarıyla MySQL’e bağlanırken yapmamız gereken bir şey daha var. SET NAMES utf8 kodunu çalıştırmak.. Bunu da şu şekilde yapıyoruz;

<?
php mysql_connect("localhost","root","1234");
mysql_select_db("testdb");
mysql_query("SET NAMES UTF8");
?>

Bunları yaptıktan sonra Türkçe karakter problemiyle karşılaşmamanız gerekiyor…

Özet
Php ve Mysql'de Türkçe karakter sorunu ve çözümü
Makale Adı
Php ve Mysql'de Türkçe karakter sorunu ve çözümü
Açıklama
Php ve Mysql'de Türkçe karakter sorunu ve çözümü
Yazar
Selim YILMAZ
Selim YILMAZ
posted under Web Tasarım
70 Comments to

“Php ve Mysql’de Türkçe karakter sorunu ve çözümü”

  1. Avatar Haziran 6th, 2011 at 17:36 mert Says:

    kardeş çok sağol sabahtan beri uğraşıyordum demek UTF-8 without BOM danmış yeni anladım öyle yapınca gerekli karakterleri düzelttim oldu çok sağulasın 🙂


  2. Avatar Ağustos 12th, 2011 at 17:40 Sağol kardeşim Says:

    mysql_query(“SET NAMES UTF8″); bu kod olayı çözdü teşekkürler 😉


  3. Avatar Aralık 21st, 2011 at 21:09 Metin Says:

    Allah razı olsun.Bu karakter sorunu insanı çileden çıkarıyordu. 🙂


  4. Avatar Nisan 28th, 2012 at 15:48 Harun Says:

    Gerçekten çok ama çok faydalı bir anlatım olmuş. Sayenizde türkçe karakter hatasından kurtuldum. Teşekkkürler.


  5. Avatar Mayıs 16th, 2012 at 17:00 Bedirhan Says:

    Helal olsun bende yeni fark ettim neredeyse bütün diller tek tek denedim çok çok teşekür ederim…


  6. Avatar Ekim 18th, 2012 at 20:18 the_gkmn Says:

    Sağol kardeş gerçekten çok yardımcı oldun.


  7. Avatar Ekim 21st, 2012 at 18:23 gezginbilge Says:

    çok teşekkür ederim. Güzel anlatım


  8. Avatar Mart 6th, 2013 at 18:38 abdulkaradeniz Says:

    teşekkürler..


  9. Avatar Mart 17th, 2013 at 22:13 snn Says:

    Teşekkürler sorun çözüldü.
    Atladığım yer buraymış.
    mysql_query(“SET NAMES UTF8”);


  10. Avatar Mart 25th, 2013 at 18:54 mehmet Says:

    eyvallah kardeşim


  11. Avatar Nisan 30th, 2013 at 00:29 Oguzhan Says:

    Hocam Çok Teşekkür Ettim Sayende Sorunu Çözdüm 🙂 Güzel Anlatım Olmuş :=)


  12. Avatar Mayıs 22nd, 2013 at 09:03 Kaligrafi Says:

    çok teşekkür ederim çok işime yaradı gerçekten.


  13. Avatar Temmuz 15th, 2013 at 00:33 güzel sözler Says:

    Şu Sıkıntıdan Kurtulamadım giTTi Php Yi Html e Çevirecem Bu Gidişle 🙂


  14. Avatar Temmuz 17th, 2013 at 10:16 Edel Ajans Says:

    Teşekkürler


  15. Avatar Eylül 3rd, 2013 at 23:46 süleyman kılıçgil Says:

    ne kadar teşekkür etsem az gelir. Bir haftadır gezmediğim form okumadığım makale kalmadı neredeyse. Sorunum senin sayende çözüldü.


  16. Avatar Eylül 20th, 2013 at 14:10 Aysun Says:

    Teşekkürler :))


  17. Avatar Kasım 28th, 2013 at 02:42 sedat Says:

    vallaha sağol ya


  18. Avatar Aralık 1st, 2013 at 03:13 HARUN Says:

    Teşekkürler


  19. Avatar Mart 24th, 2014 at 13:31 Menekşe Says:

    Çoook teşekkürler :))


  20. Avatar Nisan 15th, 2014 at 19:46 cihan Says:

    Hocam teşekkürler aynı sorunu sublime text üzerinde yaşıyordum.Şimdi halloldu.


  21. Avatar Temmuz 29th, 2014 at 19:36 Sohbet Says:

    çok güzel bilgiler olmuş işime yaradı teşekkürler.


  22. Avatar Ekim 29th, 2014 at 03:41 Alican Says:

    hocam valla cok hora gecti, eline saglik


  23. Avatar Kasım 10th, 2014 at 21:09 fermayil Says:

    teşekürler hocam sorunu çözdü


  24. Avatar Aralık 22nd, 2014 at 14:43 Model Says:

    mysql_query(“SET NAMES UTF8”); sitenin A dan Z ye tüm karakter proplemi bunu ayar.php ye eklemem le çözüldü 2 gündür sebebini arıyordum teşekkürler.


  25. Avatar Ocak 2nd, 2015 at 16:09 Muhep Says:

    Teşekkür EDERİM!


  26. Avatar Nisan 8th, 2015 at 11:07 DENİZ GÜLKAN Says:

    mysql_query(“SET NAMES UTF8”); sorunu ortadan kaldırdı teşekkürler.


  27. Avatar Nisan 13th, 2015 at 14:57 mustafa Says:

    Hocam 1 aylık mesaimi hallettin. Hakkını helâl et.


  28. Avatar Mayıs 26th, 2015 at 23:34 HAKAN AKSU Says:

    Çok teşekkürler.


  29. Avatar Haziran 9th, 2015 at 11:02 Bünyamin Says:

    Selim Yılmaz paylaşım için teşekkür ederim.


  30. Avatar Haziran 21st, 2015 at 15:50 Vişnelik Çilingir Says:

    Hocam çok detaylı bir açıklama olmuş, uzun zamandır araştırmasını yaptığım bu konu ile artık tarafınızdan bilgi sahibi oldum diyebilirim. Konu hakkında verdiğiniz değerli paylaşımınız benim gibi diğer ihtiyaç sahiplerinin de işine çok yarayacaktır umuyorum, teşekkürler..


  31. Avatar Haziran 23rd, 2015 at 07:58 Anonim Says:

    Visitor Rating: 5 Stars


  32. Avatar Temmuz 3rd, 2015 at 22:48 Anonim Says:

    Visitor Rating: 5 Stars


  33. Avatar Ağustos 20th, 2015 at 02:19 Anonim Says:

    Visitor Rating: 1 Stars


  34. Avatar Eylül 1st, 2015 at 01:57 Metin Says:

    Kardeşim Sağol çok işime yaradı iki üç siteye daha bakmıştım çözemedim senin sayende oldu teşekkürler :))


  35. Avatar Ekim 11th, 2015 at 19:33 Anonim Says:

    Visitor Rating: 1 Stars


  36. Avatar Kasım 26th, 2015 at 19:14 Omer Says:

    Abim Yardım Edermisn Ben Localhost Giriorum Dashboarda atıyor giriş yapmak istiyorum phpmyadmine direk giriyor giriş yeri cıkmıyor abim acil bilen varsa 🙁


  37. Avatar Mayıs 31st, 2016 at 09:25 Anonim Says:

    Visitor Rating: 1 Stars


  38. Avatar Haziran 21st, 2016 at 09:46 Anonim Says:

    Visitor Rating: 5 Stars


  39. Avatar Ekim 7th, 2016 at 17:13 Anonim Says:

    Visitor Rating: 1 Stars


  40. Avatar Ekim 11th, 2016 at 13:21 Anonim Says:

    Visitor Rating: 1 Stars


  41. Avatar Ekim 15th, 2016 at 01:49 Anonim Says:

    Visitor Rating: 5 Stars


  42. Avatar Ekim 15th, 2016 at 01:51 barış Says:

    selim bey verdiğiniz bilgiler çok işime yaradı. teşekkür etmeden geçemedim.


  43. Avatar Ekim 15th, 2016 at 13:14 Anonim Says:

    Visitor Rating: 4 Stars


  44. Avatar Ekim 29th, 2016 at 00:24 Anonim Says:

    Visitor Rating: 5 Stars


  45. Avatar Kasım 2nd, 2016 at 18:34 Anonim Says:

    Visitor Rating: 5 Stars


  46. Avatar Kasım 29th, 2016 at 08:08 Selim YILMAZ Says:

    Visitor Rating: 5 Stars


  47. Avatar Aralık 1st, 2016 at 14:40 Anonim Says:

    Visitor Rating: 1 Stars


  48. Avatar Ocak 23rd, 2017 at 14:51 Anonim Says:

    Visitor Rating: 1 Stars


  49. Avatar Şubat 4th, 2017 at 13:29 Weise Brown Says:

    Merhaba Arkadaslar Benım bir sorum olacaktı rusça yazı kaydettım sıteye verıtabanına sorunsuzz kayıt oldu hatta sayfaya cekıyor sadece sefurl kısmı calısmıyor url ornek:http://localhost/websitem/kategori–.html url boyle cıkıyor –boyle ısaret var normalde baslık budur:Компьютерн­ые игры mysql utf8 bin ve utf8 general ci


  50. Avatar Mart 9th, 2017 at 15:23 Anonim Says:

    Visitor Rating: 5 Stars


  51. Avatar Mart 9th, 2017 at 15:26 Volkan SAM Says:

    hocam elimde excel cıktısı alabilmem için hazırladığım bir kod var. ancak veritabanımda herşey düzgün görünmesine ramen bu kodu çalıştırdığımda harf hatası alıyorum. bu kodu html taglarında kullanamıyorum. çalışmıyor ozaman. ilacım burada mysql_query(“SET NAMES UTF8”); ama yerleştirecek yer bulamadım. yarodımlarınızı esirgemezseniz sevinirim…
    tesekkurler… volkansam@hotmail.com


  52. Avatar Nisan 7th, 2017 at 20:50 Anonim Says:

    Visitor Rating: 5 Stars


  53. Avatar Nisan 22nd, 2017 at 11:51 Anonim Says:

    Visitor Rating: 5 Stars


  54. Avatar Haziran 15th, 2017 at 23:54 Muhammeb Mermer Says:

    Allah razı olsun üstad, çok teşekkür ederiz, emeğine sağlık 🙂


  55. Avatar Temmuz 10th, 2017 at 12:25 Anonim Says:

    Visitor Rating: 5 Stars


  56. Avatar Ağustos 1st, 2017 at 15:16 Anonim Says:

    Visitor Rating: 5 Stars


  57. Avatar Ağustos 9th, 2017 at 18:22 Anonim Says:

    Visitor Rating: 1 Stars


  58. Avatar Eylül 4th, 2017 at 07:17 Anonim Says:

    Visitor Rating: 5 Stars


  59. Avatar Eylül 5th, 2017 at 19:46 Anonim Says:

    Visitor Rating: 5 Stars


  60. Avatar Kasım 15th, 2017 at 16:55 Anonim Says:

    Visitor Rating: 1 Stars


  61. Avatar Ocak 22nd, 2018 at 08:57 Anonim Says:

    Visitor Rating: 5 Stars


  62. Avatar Şubat 16th, 2018 at 19:23 Anonim Says:

    Visitor Rating: 5 Stars


  63. Avatar Nisan 11th, 2018 at 23:36 Anonim Says:

    Visitor Rating: 5 Stars


  64. Avatar Mayıs 20th, 2018 at 14:08 Anonim Says:

    Visitor Rating: 5 Stars


  65. Avatar Temmuz 2nd, 2018 at 20:55 Anonim Says:

    Visitor Rating: 5 Stars


  66. Avatar Temmuz 4th, 2018 at 22:03 Anonim Says:

    Visitor Rating: 5 Stars


  67. Avatar Ağustos 2nd, 2018 at 22:16 Anonim Says:

    Visitor Rating: 5 Stars


  68. Avatar Ağustos 30th, 2018 at 12:44 Anonim Says:

    Visitor Rating: 5 Stars


  69. Avatar Ekim 8th, 2018 at 09:51 Anonim Says:

    Visitor Rating: 5 Stars


  70. Avatar Nisan 11th, 2019 at 02:36 Anonim Says:

    Visitor Rating: 5 Stars


Email will not be published

Website example

Your Comment:


[instagram-feed]