İçeriğe geç
18/09/2009 / Mustafa Ferhan Akman

Java, MySQL Türkçe Karakter Sorunu

Şuan yaptığım projede, JSP sayfası içerisinde, textboxlar yardımı ile  girdi olarak aldığım inputlarımı Servletler aracılığı ile mysql database’ime atıyorum. Fakat Türkçe karakter sorunu yaşadım. Internetten araştırdığımda bir kaç farklı yol buldum fakat hiç birisi derdime derman olmadı. Bulduğum yollardan bazılarını harmanlayarak kullanınca en sonun Türkçe karakter sorunumu aşabildim:)

Birilerinin işine yarar ümidi ile uyguladığım adımları paylaşayım;
1- Öncelikle mysql’den karakter setini UTF8 seçiyoruz.
2- Java class’ı tarafında, Connection’ı tanımlarken normal adresten daha fazlasını kullanıyoruz;
normal adres: jdbc:mysql://localhost:[portnumarası]/[db ismi]
kullanılması gereken:
jdbc:mysql://localhost:[portnumarası]/[db ismi]?useUnicode=true&characterEncoding=UTF-8

3 - Verileri JSP sayfasından verileri çekmeden önce;  request.setCharacterEncoding(“ISO-8859-9″); yazıyoruz..

artık database’imize girdiğimiz Türkçe karakterler olması gerektiği gibi görüntülenecek.

About these ads

11 Yorum

Yorum Yapın
  1. Serdar / Eki 2 2009 12:34 am

    Teşekkür

  2. Ahmet KILINÇ / Kas 14 2009 11:16 pm

    Aynı sıkıntı ile geçen hafta uğraştığım bir proje sırasında karşılaştım, ve MYSQL yapılandırma ayrları ile sorunu cözdüm sizin yolunuzda farklı bir yol ferhan bey denemek lazım:))

  3. salihacar / Oca 12 2010 1:29 am

    Bi an “buldummm” diye sevinmiştim ama maalesef denemelerim sonuç vermedi.. Türkçe karakter problemim devam etmekte !

    • ferhanakman / Oca 12 2010 10:17 am

      Sen webshpere application server ile çalışıyorsundur diye geldi aklıma? Eğer öyle ise ve türkçe karakter problemi yaşıyorsan, boşuna çözüm arayıp vaktini boşa harcama :)))

      • salihacar / Oca 16 2010 1:41 pm

        RAD ile DB2 arasındaki bağlantıyı yapamadığımızdan dolayı bitirme projesinin de yetişmesi amacıyla MyEclipse ile Tomcat – MySQL kullandık. Ama dediğim gibi.. sorun halen devam etmekte..

  4. ferhanakman / Oca 16 2010 7:11 pm

    o zaman sorunu tomcatte aramanı tavsiye ederim salih

  5. Baturman / May 4 2010 7:18 pm

    Bence türkçe karakterler ile çalışırken UTF-8 kullanmak daha mantıklı. Sonuçta ortaya çıkan database bir çok karakteri destekleyebiliyor olacak. MySQL kurulumunda seçtiğiniz (Database’in kullandığı) charset UTF-8 olarak ayarladıysanız şöyle bir problemle karşılaşabilirsiniz.

    create table `test`.`TableName1`(
    `id` int NOT NULL ,
    `name` varchar(30) NOT NULL ,
    PRIMARY KEY (`id`)
    ) ;

    şöyle bir tablonuz olsun. Bu tabloya veri girerken Türkçe ‘I’ ve ‘İ’ harflerini girdiğinizde, ve arkasından şöyle bir query çalıştırdığınızda

    SELECT * FROM TableName1 WHERE name LIKE (‘I%’);

    Size ‘İ’ ile ve ‘I’ ile başlayan kayıtların hepsini getirecektir. fakat dikkat edin ben ‘I’ istiyorum.

    Bu tip problemleri yenmek için daha spesifik olmak gerekir. Yukardaki tabloyu bu şekilde yaratırsanız

    create table `test`.`TableName1`(
    `id` int NOT NULL ,
    `name` varchar(30) CHARSET utf8 COLLATE utf8_turkish_ci ,
    PRIMARY KEY (`id`)
    )

    bu problem ortadan kalkacaktır.

  6. Afşin / Mar 13 2011 10:02 pm

    Ben, query browser’da türkçe karakter sorunu yaşamama rağmen, java’dan yapılan sorgular problem çıkarıyordu. Bağlantı url’sine “?useUnicode=true&characterEncoding=UTF-8″ ekleyerek sorunu aştım. Çok sağolun…

  7. yusuf / Mar 23 2011 8:05 pm

    arkadaşlar benim problemim hala devam etmekte. ferhan beyin dediklerini yaptım fakat sorun çözülmedi.

    mysql veritabanında küçük “ı” harfini görmüyor. Ayrıca;

    jsp sayfasında, mysql veritabanından çektiği verilerin içinde ç,ö,ı,ü gibi harfler varsa, bu harfleri ekrana yazınca bozuk gösteriyor.

    Ahmet bey siz sorunu nasıl çözdünüz acaba anlatır mısınız?

  8. serkan / Ara 3 2011 11:34 pm

    valla tebrik ederim hocam, sorunum çözüldü…

  9. Tayyip / Tem 12 2012 8:38 am

    MySQL charset i latin1 olan bir projede charseti değiştirmeden javada latin1 i kullanma şansımız yok mu ?

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logo

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter picture

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook photo

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ photo

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s

Takip Et

Her yeni yazı için posta kutunuza gönderim alın.

Diğer 27 takipçiye katılın

%d blogcu bunu beğendi: