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");

3 thoughts on “JSP – MySQL Türkçe Karakter Probleminin Çözümü

  1. Çö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?

    • 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.

      • 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 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s