Mysql Türkçe Karakter Problemi

Benzer belgeler
İnternet Programcılığı

Veritabanı Uygulamaları Tasarımı

SORGULAR. Öğr.Gör.Volkan Altıntaş

Bölüm 10: PHP ile Veritabanı Uygulamaları

VERİ TABANI YÖNETİM SİSTEMLERİ I

İNTERNET PROGRAMCILIĞI HAFTA MYSQL - PHPMYADMIN. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Mysql Nedir.

PHP ile İnternet Programlama

Microsoft SQL Server 2008 Oracle Mysql (Ücretsiz) (Uygulamalarımızda bunu kullanacağız) Access

WEB TASARIM I. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

Veritabanı Tasarımı. Kullanıcı Erişimini Kontrol Etme

ORACLE TNS (TRANSPARENT NETWORK SUBSTRATE) LISTENER YAPILANDIRMASI

Yaptığımız web sitelerinin daha kullanışlı olması için veritabanı sistemleri ile bağlantı kurup ihtiyaca göre verileri okuyup yazmasını isteriz.

Veritabanı Tasarımı. Tablo Değiştirme

Basit Mimari, Katmanlı Mimari ve doğrudan çalıştırma olarak üçe ayrılır.

Örnek bir kullanım ve bilgisayar ağlarını oluşturan bileşenlerin özeti

SQL Komutları (2) Uzm. Murat YAZICI

BLGM 354 DENEY 1 * GİRİŞ

BLIND SQL INJECTION SALDIRILARI

Flow Kullanım Klavuzu Mart 2014

BAY.t Entegre. Aşağıdaki script fiyat gör programının ayarlar sayfasındaki sorgu cümlesi alanına yapıştırılıp Sorguyu Db ye Yükle tıklanır

Veri Tabanı Yönetim Sistemleri Bölüm - 3

Üst Düzey Programlama

Bölüm 4: DDL Veri Tanımlama Dili

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

2-Hafta Temel İşlemler

Basit SQL Sorguları Veritabanından verilerin SELECT cümleleri ile alınması işlemine sorgulama denir.

Veritabanına Giriş. Oğuzhan Ceylan. 19 Eylül 2011

SAKLI YORDAM (Stored Procedure) Sibel Somyürek

Veritabanına Uygulanması

SQL Deyimleri. Öğr.Gör.Volkan ALTINTAŞ Volkanaltintas.com

Elektra Raporlama Sistemi Sunumu

STORED PROCEDURE LER (Saklı Yordamlar)

İÇERİK YÖNETİM SİSTEMİ (CMS) Bir web sitesi yayınlamak için yapılması gerekenler:

PHP I PHP I. E. Fatih Yetkin. 26 Eylül 2011

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Veritabanı sistemlerinde veri bütünlüğünü sağlayabilmek için CONSTRAINTS olarak adlandırılan bazı zorlayıcı ifadeler kullanılabilir.

20461C Querying Microsoft SQL Server Modül Seviye Belirleme Testi

IceWarp kurulumu. IceWarp Server kurmanız için yapmamız gereken adımlar şunlardır:

13 Aralık Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Raporlar. Kullanıcı Tanımlı Raporlar Bölümünden Yapabildiklerimiz

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım.

ÖĞRENME-ÖĞRETME YÖNTEM VE TEKNİKLERİ. gösterip yaptırma, uygulamalı çalışma. Anlatım, soru-cevap, gösterip yaptırma, uygulamalı çalışma.

KISITLAMALAR (CONSTRAINT)

JasperReports Server ve Ireport raporlama Sistemi Kurulumu / Kullanımı 1. Bölüm 2. Bölüm 1- JasperReports Server ve Ireport Nedir?

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

Security Configuration Wizard ile güvenliği artırmak

CMS (İçerik Yönetim Sistemi)

Turquaz. Açık kodlu muhasebe yazılımı Turquaz Proje Grubu

YAPISAL SORGULAMA DİLİ (SQL)

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Ara Öğr. Gör. Murat KEÇECĠOĞLU

Bu makalede 2003 sunucu, Windows 2003 Server anlamına gelmektedir. Aşağıda yapılan işlemler 2003 R2 sunucu üzerinde denenmiş ve çalıştırılmıştır.

-- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak yazılan satırın önüne konulması yeterlidir.

EndNote Web Hızlı Başvuru kartı

SQL'e Giriş. SELECT Deyimi. SQL Komutları. Yardımcı Deyimler

Php Programlama Dili MySQL Uygulamaları

İNTERNET PROGRAMCILIĞI - II

Üst Düzey Programlama

Script. Statik Sayfa. Dinamik Sayfa. Dinamik Web Sitelerinin Avantajları. İçerik Yönetim Sistemi. PHP Nedir? Avantajları.

Web Programlama Kursu

SQL e Giriş. Uzm. Murat YAZICI

ÇANKAYA ÜNİVERSİTESİ WEBMAIL KULLANIM KLAVUZU

SORGULAR VE ÇEŞİTLERİ II

Veritabanı Tasarımı. Büyük/Küçük Harf ve Karakter İşleme

Veri Tabanı Programlamaya Giriş

İÇERİK YÖNETİM SİSTEMİ KULLANMA KILAVUZU

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır.

Sadece 2 İstekle MySQL Blind SQL Injection. Canberk BOLAT canberk.bolat[-at-]gmail[-dot-]com

FABREKA YAZILIM ELEKTRONİK DANIŞMANLIK TİC. LTD. ŞTİ.

T.C. SAKARYA ÜNİVERSİTESİ ADAPAZARI MESLEK YÜKSEKOKULU WEB TABANLI VERİ TABANI UYGULAMASI YÖNLENDİRİLMİŞ ÇALIŞMA. Enes Al 1027.

"SQL Server Management Studio" yazılımını yüklemek için alttaki resmi sitesinden 180 günlük deneme sürümünü indirebilirsiniz.

TEMEL SQL SORGU ÖRNEKLERİ. Yukarıdaki sorguyu yazıp çalıştırdığımızda db_market adında bir veritabanı oluşturulur.

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language)

PHP 1. Hafta 1. Sunum

İÇERİK YÖNETİM SİSTEMİ KULLANMA KILAVUZU

Web Tasarımının Temelleri

PHP 1. Hafta 2.Sunum

Veritabanı Tasarımı. SQL Deyimi Anatomisi

İSTANBUL RUMELİ ÜNİVERSİTESİ MESLEK YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI 1.SINIF 2.YARIYIL İNTERNET PROGRAMCILIĞI II DERS İZLENCESİ

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

İNTERNET PROGRAMCILIĞI HAFTA. MYSQL ile VERİTABANI İŞLEMLERİ - 1. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Veritabanı Oluşturma, Silme

Veritabanı Tasarımı. Tablo Oluşturma

Veri Tabanı-I 5.Hafta

Öğr. Gör. Serkan AKSU 1

Tavsiye Edilen Önhazırlık Veritabanı kavramını öğrenmek

OBEE (Call Statistic Reporter)

WAMP SERVER KURULUMU

Ortamınızda A.D. veya LDAP sistemi var ise aşağıdaki linkten KoruMail LDAP-AD isimli dokümanı inceleyebilirsiniz.

CRYSTAL REPORT EĞĠTĠM DÖKÜMANLARI

Oracle da kullanılan veri tipleri:

MongoDB. Doğan Aydın. Eylül, 2011

BÖLÜM -7: TABLOLARI OLUŞTURMA VE YÖNETME

PHP'ye Giriş Türkiye PHP Grubu - Linux Şenlikleri PHP Eğitim / Tanıtım Seminerleri Ankara, 11 Mayıs 2006 Hidayet Doğan <hdogan@hido.

İNTERNET PROGRAMLAMA 2 A S P. N E T. Marmara Teknik Bilimler MYO / Hafta 5 Veri Tabanı İşlemleri

Data Programming SQL Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Programlama Yazılımı ile Web Sitesi Oluşturma

ASP.NET CLASS KULLANARAK VERİTABANI İŞLEMLERİ

Toplu Kayıt Kullanıcı Kitapçığı

Ders Kodu Yarıyıl T+U Saat Kredi AKTS. Programlama Dilleri

OTURUM AÇMA ADLARI. Tavsiye Edilen Önhazırlık Enterprise Manager'i kullanabilmek.

Transkript:

Mysql Türkçe Karakter Problemi Php+Mysql Tabanlı Site Tasarımları hazırlayan yeni arkadaşların en büyük problemleridir, Mysql 4 üzerindeki karakter problemleri. Bu sadece Mysql 4 üzerinde oluşan bir durum. Yani Mysql 4'ler üstünde karakter kodlama seçenekleri söz konusu. Ayrıca türkçe karakter içeren sıralamalardada sorunlar çıkmaktadır. Collation ve character set nedir? MySQL 4.1 den itibaren türkçe karakter işi karıştı. SET NAMES latin5 ile çözdük bu problemi gerçi ama yine de sistemin nasıl çalıştığını bilmezseniz sorun yaşayabilirsiniz. Konuyu kavramak için önce tanımları ele alalım. Bilmemiz gereken iki tanım var: Character Set ve Collation Character Set (Karakter Seti) Adından anlayabileceğiniz gibi desteklenen karakterleri kast ediyoruz. Örneğin latin5 karakter setindeki ı harfinin ASCII kodu latin1 karakter setindeki ý harfi ile aynıdır. Dolayısıyla türkçe bir dokümanı latin1 olarak gösterirseniz tüm ı harfleri ý olarak gösterilecektir. Farklı diller aynı karakter setlerine sahip olabilir, örneğin latin1 seti almanca, ispanyolca, ingilizce, isveçce gibi dilleri kapsar. Notlar: - Character set, charset, code page gibi isimleri de vardır. - latin1: ISO-8859-1 ve windows-1252 ile aynıdır. - latin5: ISO-8859-9 ve windows-1254 ile aynıdır. Collation (koleyşın) İki karakterin karşılaştırılmasında kullanılır. Pratikte bu tablo alanlarını sorgularken ve sıralamalarda işe yarar: SET names latin5; SELECT * FROM deneme WHERE isim = 'Çağrı'; SELECT * FROM deneme ORDER BY isim; Yukarıdaki sorguların sonucu isim alanının collation ına bağlıdır. Örnekle açıklamak istersek, almancada da ü harfi var türkçede de, isveçcede de Ama bu harflerin alfabedeki yeri dile göre değişiyor yani collation ı latin1_swedish_ci seçip sıralama yaparsanız ü başka yerde, latin1_german1_ci seçerseniz başka yerde yer alır. Ya da latin1_german1_ci seçerseniz aramalarda ä ile a aynı kabul edilirken latin1_german2_ci seçerseniz farklı kabul edilir. Collation altçizgiyle ( _ işareti) parçalara ayırırsak ilk kısım karakterin ait olduğu dil ailesini, ikinci kısım dili, üçüncü kısım ise karşılaştırma şeklini ifade eder. Örneğin latin1_swedish_ci dediğimiz zaman latin1 ailesinden isveçce dilini büyük-küçük harf ayrımı olmadan sırala demek istiyoruz. ci: Case-Insensitive (Büyük küçük harfe duyarsız) cs: Case-Sensitive (Büyük küçük harfe duyarlı. Sadece bazı diller için geçerli, türkçede kullanılmaz) bin: Binary (Karakteri tanımlayan byte değerine göre karşılaştır demek. Pratikte büyük küçük harfe duyarlılık istendiğinde kullanılır. MySQL Dil Ayarı Nasıl Yapılır? MySQL le biraz uğraşırsanız dilin ayarlanabileceği tonla yer görürsünüz. Büyükten küçüğe doğru gidersek: www.dijitalders.net Mysql Türkçe Karakter Problemi 1

1. 2. 3. 4. Sunucu ayarı Veritabanı ayarı Tablo ayarı Tablodaki alanın ayarı Not 1: Bu ayarlardan pratikte sizi tek ilgilendiren: tablodaki alanın karakter seti. Not 2: Buradaki ayarlar ne olursa olsun son sözü yine bağlantıyı kurduktan sonra verdiğiniz SET NAMES utf8 komutu söyler. 1. MySQL Sunucusu MySQL derlenirken tanımlanabilir: shell>./configure --with-charset=utf8 --with-collation=utf8_general_ci Ya da my.cnf / my.ini de tanımlanabilir: [mysqld] character-set-server=utf8 collation-server=utf8_general_ci Bu tanımlar sadece yeni yaratılacak veritabanları ve tabloların varsayılan karakter setinin utf8, collation ının ise utf8_general_ci olmasını sağlar. Yani bu tanımları yapsanız bile yine de SET NAMES utf8 demeniz gerekecektir. 2. Veritabanı Veritabanı yaratılırken tanımlanır. Eğer tanımlanmazsa MySQL sunucusundaki tanım neyse o kullanılır. CREATE DATABASE mydb DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; Bu yapılan tanım da sadece bu veritabanında oluşturulan tabloların varsayılan karakter seti ve collation ının ne olacağını belirler. 3. Tablo Tablo yaratılırken tanımlanır. Eğer tanımlanmazsa veritabanındaki tanım kullanılır: CREATE TABLE deneme (`x` INT) CHARACTER SET latin5 COLLATE latin5_turkish_ci Bu durumda tabloya eklenen satırların collation ı verilmezse latin5_turkish_ci olur. 4. Tablo Alanı Üstteki tabloya ispanyolca bir alan eklemek istediğimizi düşünelim: ALTER TABLE deneme ADD `y` VARCHAR( 10 ) CHARACTER SET latin1 COLLATE latin1_spanish_ci; Tablonun collation ı türkçe olmasına rağmen alan ispanyolca oldu. Bu alana türkçe giriş yaparsanız ı,ş, ğ gibi karakterleri hatalı görürsünüz. Çalışma Şekli Bu kısımda SET NAMES latin5 ne demek onu detaylandıracağım Veritabanının çalışma şeklini düşünürsek, biz sunucuya bir sorgu gönderiyoruz, sunucu da bu sorguyu okuyup bize bir cevap gönderiyor. 1. Gönderdiğimiz sorgu hangi karakter setinde? Biz örneğin ascii mi gönderiyoruz yoksa utf8 mi? Bunun için sunucu character_set_client parametresine bakar. 2. Gönderilen sorguyu sunucu hangi karakter setine çevirmeli? Bunun için de character_set_connection ve collation_connection parametrelerine bakar. Yani sunucu gönderilen sorguyu character_set_client karakter setinden character_set_connection karakter setine çevirir. collation_connection parametresi sadece iki string birbiriyle kıyaslanacaksa kullanılır. Eğer bir tablo alanını bir string ile karşılaştırıyorsanız kullanılmaz çünkü bu durumda o tablo alanının collation ı kullanılır. 3. Sunucu sorguyu işleyip veritabanından sonucu çektikten sonra bize gönderir demiştik, bize göndermeden önce sonucun karakter setini değiştirebilir. Bunun için character_set_results parametresini kullanır. Bütün bu ayarları sunucunun konfigürasyon dosyasından yapabileceğiniz gibi (my.cnf ya da my.ini) doğrudan bir sql cümlesi ile de yapabilirsiniz. Yani php için: mysql_query("set character_set_client='latin5'"); www.dijitalders.net Mysql Türkçe Karakter Problemi 2

diyebilirsiniz örneğin. Sadece türkçe kullanacaksanız eğer şu komuyu verebilirsiniz: mysql_query("set character_set_client='latin5'"); mysql_query("set character_set_results='latin5'"); mysql_query("set character_set_connection='latin5'"); Her seferinde bu satırları aklımızda tutmamıza gerek olmasın diye MySQL bir kısa yol koymuş, o da: mysql_query("set NAMES latin5"); SET NAMES satırından nasıl kurtulurum? Programcıların SET NAMES satırını unutmaları ihtimaline karşı init_connect parametresini kullanmak pratik olabilir: [mysqld] init_connect='set NAMES latin5' Tabii veritabanını başlatırken parametre olarak da verilebilir bu. Performansı arttırmak için veritabanı ayarlarına skip-character-set-client-handshake parametresini ekleyebilirsiniz. Bu durumda tablo alanının collation ı kullanılacaktır ancak SET NAMES ile dili değiştirmek bu durumda mümkün olmayacaktır. Bir de, bu parametre super user ile bağlandığınızda geçersizdir. Türkçe Dil Desteği ile İlgili Diğer Etkenler Farklı dillerin doğru desteklenmesi için sadece MySQL in doğru ayarlanması tabii ki yeterli değil. Dinamik web sitelerini örnek aldığımızda, Apache PHP MySQL platformunu düşünürsek: 1. Apache nin dil ayarı Header göndererek apache de dil tanımlanabilir: AddDefaultCharset utf-8 Bu tanımlanan dil hatalıysa PHP, HTML ve veritabanındaki ayarlarınız ne olursa olsun sorun yaşarsınız. 2. PHP PHP den de aynı apache deki gibi header gönderilebilir: header('content-type: text/html; charset=utf-8'); Bu gönderilen header, apache tarafından gönderilenlerin sonuna eklendiği için apache nin ayarlarını değiştiremez ancak burada dil ile ilgili header yanlış gönderilirse HTML ve veritabanındaki ayarlarınız ne olursa olsun sorun yaşarsınız. 3. HTML HTML meta komutu ile header bilgisi simüle edilebilir. <meta HTTP-EQUIV="Content-type" VALUE="text/html; charset=utf-8" /> Eğer PHP ya da apache den header gönderildiyse bu değer işe yaramaz. Eğer buradaki bilgi hatalı olursa veritabanından doğru dilde çekseniz bile sorun yaşayabilirsiniz. UTF-8 ile ilgili not UTF8 sonradan çıkan bir tanım. İçerisinde hemen hemen tüm dilleri barındırdığı için aslında büyük kolaylık. Ancak ilk geliştirilen ASCII formatından farklı bir altyapısı var. Dolayısıyla eğer utf8 kullanmayı seçtiyseniz yukarıdakilere ek olarak bir de dosya formatı sorunu karşınıza çıkıyor. Eğer PHP ya da HTML sayfalarınızı açtığınız editör UTF8 destekli değilse ya da yeni dosya yarattığınızda dosyayı utf8 olarak kaydetmediyseniz yine sorun yaşayabilirsiniz. UTF8 başlı başına bir muamma olduğu için çok detaya girmeyeceğim www.dijitalders.net Mysql Türkçe Karakter Problemi 3

Karakter sorunu çözmede izleyebileceğiniz yol Eğer karakter sorunu yaşıyorsanız aşama aşama şunu yapabilirsiniz: 1. Öncelikle sayfada gösterilen karakterler bozuk mu yoksa yanlış karakter setinde göstermeye çalıştığı için mi öyle gözüküyor onu tespit edin. Bunun için firefox ta View / Character Encoding kısmından encoding doğru mu gözüküyor bakın. Eğer doğruysa ve problem utf8 leyse hata ya ilgili dosyanın utf8 olmamasıdır ya da veritabanından hatalı geliyordur. 2. Eğer encoding hatalıysa header larda sorun var mı ona bakın. Header ları görmek için firefox un firebug extension ından ya da ie8 in developer tools undan vs. yararlanabilirsiniz. Eğer header farklı ise header ın nereden geldiğini bulun: Ya apache den ya da PHP den gelir. 3. Header doğruysa View source diyip meta elemanına bakın. Buna view source ile bakın zira özellikle dinamik sitelerde kazara birden fazla meta komutunun geldiğine çok şahit oldum. Yeni bir veritabanı yarattığınızda, Karşılaştırma(Collation) değerinin latin1_general_ci, latin1_swedish_ci v.b. olduğunu göreceksiniz. Siz bu veritabanı üstüne tablolarınızı yaratır ve kullanıma hazır hale getirirsiniz. Fakat her tablo için varsayılan karşılaştırma değeri, yine veritabanında kullanılan değer olacaktır. Aslında karşılaştırma değeri, tabloların dil kodlamasıdır. Ve sadece metin içerikli sütunlarda görünmektedir. Bunun anlamı, o sütunda seçmiş olduğunuz dilin kullanğlacağı diyebilirim. Standart olarak swedish geçer. Sizlerin bu sütunlara yollayacağınız kayıtlar ise, isveçce dili göz önünde bulundurularak girilir. Bundan da şu çıkar: İsveçcede Türkçe karakter yer almaz, bu yüzden Türkçe karakterler yerine? v.b. karakter bulacaksınız. Sanırım genel olarak anlatabildim bu kısmı. Çözüm Yolu Yeni bir veritabanı yaratırken, karşılaştırma değerini daima latin5_turkish_ci seçin. Dilimize ait karakter kodu budur. Bu şekilde veritabanını yaratırsanız, tablolar için yapmanız gereken fazladan birşey yok. Tablo yaratırken, metin değerli sütunların karşılaştırma değerlerini boş bırakabilir yada yine latin5_turkish_ci seçebilirsiniz. mysql_query("create DATABASE `veritabanimiz` DEFAULT CHARACTER SET latin5 COLLATE latin5_turkish_ci"); Sıra php kodlarınızı yazmaya geldiğinde, tabi ki tablonuzun karşılaştırma değerini sql dilinde belirtmelisiniz. Bunun için aşağıda vereceğim kodu kullanacaksınız. Bunu veritabanı bağlantısı kurup, ilgili veritabanını seçtiğiniz satırın bir alt satırına girebilirsiniz. mysql_query("set NAMES 'latin5'"); Bu kodumuz tüm sorgularda, karşılaştırma değerinin latin5 olacağını söyler. Böylelikte gireceğiniz Türkçe karakterler sorunsuz şekilde tablolara yazılacaktır. Mysql 4 üstünde Türkçe karakter hatasını bu şekilde çözebilirsiniz. Ayrıca benzeri uygumalayı, hazır içerik yönetim kodlamaları üstüne de uygulayabilirsiniz. $cnn = mysql_pconnect($hostname_cnn, $username_cnn, $password_cnn) or die(mysql_error()); mysql_query("set NAMES 'latin5'"); mysql_query("set character_set_connection = 'latin5'"); mysql_query("set character_set_client = 'latin5'"); mysql_query("set character_set_results = 'latin5'"); Bir başka yöntem ise MySQL'i UTF-8 uyumlu olarak kurmak. Unicode karakterleri kullanmak üzere "install" edilen MySQL üzerinde, yine unicode değerler alan tablolarda sıralama da unicode karakter sıralamasına göre yapılıyor. Yani Türkçe karakterler olması gereken sırasıyla yansıtılabiliyor. Kurulurken "unicode" karakterler seçilmemiş ise, bunu sonradan değiştirme imkanı var mı bilmiyorum. Ancak olsa dahi böyle bir değişim sıkıntı yaratacaktır. Daha önceden tanımlanmış olan tablolardaki türkçe karakterler bozulacak olduğundan dolayı ciddi problemler oluşturabilir. utf-8 de harfleri türkçe sıralamaz; zira ı s'den sonra gelmez utf-8'de, z'den bir hayli ilerdedir. sıralama yaparken karakterlerin byte değerleri önem taşır haliyle. www.dijitalders.net Mysql Türkçe Karakter Problemi 4

<?php $baglan=mysql_connect("localhost","kullanıcıadı","şifre") or die("mysqle bağlanılamıyor"); mysql_select_db("veritabanıadı",$baglan) or die("veritabanı seçilemiyor"); mysql_query("set NAMES utf8"); mysql_query("set CHARACTER SET utf8"); mysql_query("set COLLATION_CONNECTION='utf8_general_ci'");?> Kaynak www.dmry.net/mysql-turkce-karakter-problemi http://www.dahiweb.com/mysql-turkce-karakter-sorunu http://www.huysuzadam.com/2009/05/23/mysql-turkce-destegi-collation-ve-character-set-nedir/#top www.dijitalders.net Mysql Türkçe Karakter Problemi 5