JSP – MySQL Türkçe Karakter Probleminin Çözümü

JSP ile MySql kullanıyor ve Türkçe karakter sorunu yaşıyorsanız; aşağıdaki adımlarla bu sorunu çözebilirsiniz.

Veritabanında Schema, Table ve Column bazındaki tüm Collation’larınız “utf8 – utf8_unicode_ci” olmalıdır.

JSP sayfalarınızın tamamında aşağıdaki Tag’lerden biri yer almalıdır:

<%@page pageEncoding="UTF-8"%>

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

Veritabanı bağlantısını sağlayacağınız zaman, Connection String’inize aşağıdaki gibi karakter setini dahil edin:

jdbc:mysql://localhost:3306/db_name?useUnicode=yes&characterEncoding=UTF-8

Son olarak; özellikle Request / Response ile aldığınız Text’leri SQL sorgusuna dahil etmeden önce aşağıdaki kod ile dönüşümden geçirin (Gelen metin: Input, SQL’e gidecek metin: output):

byte[] bytes = new byte[Input.length()];
for (int i = 0; i < Input.length(); i++) bytes[i] = (byte) Input.charAt(i);
String output = new String(bytes, "UTF-8");
Advertisement

Posted

in

, ,

by

Comments

3 responses to “JSP – MySQL Türkçe Karakter Probleminin Çözümü”

  1. nuri kartal Avatar
    nuri kartal

    Çözüm için teşekkürler işe yarıyor .. fakat request nesnesi ile alınan tüm stringlerin verdiğiniz kod parçasından geçirmek ne kadar uygulanabilir? Daha genel bir çözüm olabilir mi?

    1. Dr. Kerem Koseoglu Avatar

      Bana küçük bir yerde lazım olduğu için bu şekilde işimi halletmiştim. Bütün siteyi/portali bu şekilde yapmak performans açısından doğru değil; ancak daha ötesini araştırmadım.

      1. nuri kartal Avatar
        nuri kartal

        teşekkürler 🙂 herkese yararlı olabilecek bilgiler paylaşıyorsunuz başarılarınız devamını dilerim.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s