Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

JSP ve MySql de Türkçe Karakter Problemi

Herkese merhaba,

Uzun zamandır çözemediğim bir problem var. Java da kütüphane projesi için web uygulaması yapıyorum. Bilgileri saklamak için MySql veritabanını kullanıyorum.
İlk olarak veritabanına iki adet kitap kaydı ekledim ve bunları tarayıcıda gösterdim. Burada herhangi bir sıkıntı olmadı. Daha sonra kayıtları Jsp sayfası üzerinden güncellemek istedim. Güncelleme işlemi başarıyla gerçekleşiyor. Ancak kitap bilgileri Türkçe karakter problemi oluşturarak güncelleniyor.

MySql veritabanında, veritabanım, tablom ve tablo sütunlarımın tamamını utf8_turkish_ci olarak belirledim.

Java sunucu sayfalarında da karakter setini utf-8 olarak kullanıyorum.

Veritabanına bağlanmak için kullandığım url bilgisi:

private String url = "jdbc:mysql://localhost/library?useUnicode=true&characterEncoding=utf-8";

Kitap bilgisini güncellediğim metot ile bağlantı sağlayan metot:
@Override
    public int updateKitap(String id, String BarkodNo, String KitapAdi,
            String YazarAdi, String YayinEvi, String Turu, String Konusu, String BaskiYeri,
            String BaskiSayisi, String BaskiTarihi, String Stok, String Durum) {
        Connection con = null;
        PreparedStatement pstmt = null;
        try {
            con = getConnection();
            pstmt = con.prepareStatement("UPDATE kitap SET BarkodNo=?, KitapAdi=?, YazarAdi=?, YayinEvi=?, Turu=?, Konusu=?, BaskiYeri=?, BaskiSayisi=?, BaskiTarihi=?, Stok=?, Aktif=? WHERE KitapId=?");
            pstmt.setInt(1, Integer.valueOf(BarkodNo));
            pstmt.setString(2, KitapAdi);
            pstmt.setString(3, YazarAdi);
            pstmt.setString(4, YayinEvi);
            pstmt.setString(5, Turu);
            pstmt.setString(6, Konusu);
            pstmt.setString(7, BaskiYeri);
            pstmt.setInt(8, Integer.valueOf(BaskiSayisi));
            pstmt.setDate(9, Date.valueOf(BaskiTarihi));
            pstmt.setInt(10, Integer.valueOf(Stok));
            pstmt.setInt(11, (Durum.equals("Aktif")) ? 1 : 0);
            pstmt.setInt(12, Integer.valueOf(id));
            return pstmt.executeUpdate();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (con != null) {
                try {
                    con.close();
                } catch (SQLException e) {
                    throw new RuntimeException(e);
                }
            }
        }
        return 0;
    }

    public Connection getConnection() {
        Connection con = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            con = DriverManager.getConnection(url, "root", "");
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        }
        return con;
    }



Web sunucu kullanım aracı olarak Xampp kullanıyorum ve Apache Tomcat sunucu yazılımını kullanıyorum. Acaba problem Tomcat olabilir mi? Kitap bilgilerini veritabanına kaydederken Tomcat Türkçe karakter problemine neden olabilir mi? Bu sorunun kalıcı bir çözümü var mıdır?
Yardımlarınızı bekliyorum.

Teşekkür ederim.

Aziz

Ekli Dosyalar

+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Cevaplar

  • Faramir adlı üyenin fotoğrafı
    8 yıl önce yazılmış
    8 yıl önce güncellenmiş
    11 cevap - 0 soru
    Merhabalar,
    Tam olarak JSP de bir kod yazmışlığım yok ama ben de aynısını javasqript kodlarında yaşadım . Bu sorunu baglanma tarafında yazdıgım bir kodla çözdüm . Belki senin işini de görür..
    mysql_query("SET NAMES 'latin5' ");
    gibi bir sorgu benim bu sorunumu halletti...
    İyi çalışmalar...
    • GhostDeveloper adlı üyenin fotoğrafı GhostDeveloper
      mysql_query("SET NAMES 'latin5'");
      


      Bunu Php uygulamasında ben de kullanmıştım, dediğin gibi Türkçe karakter sorununu çözüyor ancak Java da yukarıda url metninin sonuna eklediğim kod ile dediğini yapabiliyorum. Onu da uyguladım zaten. Yine de fayda etmedi. Ben bu sorunun daha çok Tomcat ayarlarından kaynaklı olduğunu düşünüyorum. Varsayılan karakter setiyle ilgili olduğunu düşünüyorum. Ayarları değiştirsem de çare olmadı.
      8 yıl önce yazılmış
  • hakan_kts adlı üyenin fotoğrafı
    8 yıl önce yazılmış
    1 cevap - 1 soru
    Oluşturduğun veri tabanında field tipi olarak UTf-8 General yada Utf-8 turkish olarak tanımlı mı bir kontrol et. Standart Latin1 atıyor buda tr karakter sorunu yaratıyor...
    • GhostDeveloper adlı üyenin fotoğrafı GhostDeveloper
      Veritabanı tipini de utf8_turkish_ci olarak belirledim.
      8 yıl önce yazılmış
  • maydanoz adlı üyenin fotoğrafı
    8 yıl önce yazılmış
    13 cevap - 0 soru
    peki sql dil karakteriniz utf8_turkish_ci ise birde baglantı dosyanızda şunu deneyebilirmisiniz...

    mysql_query("SET CHARACTER SET 'utf8'");
    mysql_query("SET NAMES 'utf8'");
    • GhostDeveloper adlı üyenin fotoğrafı GhostDeveloper
      Java'da mysql_query() fonksiyonunu nasıl uygulayabilirim?
      8 yıl önce yazılmış 8 yıl önce güncellenmiş
    • maydanoz adlı üyenin fotoğrafı maydanoz
      işin açığı java ile ilgili pek bir bilgim yok ama veritabanına bağlantı dosyanızın olduğunu düşünerek yazdım.
      8 yıl önce yazılmış