Uygulamamda C kodu kullanarak veritabanına veri ekliyorum, çünkü güvenilmeyen bir kaynaktan aldığım dizeler PQescapeByteaConn
libpq kütüphanesini kullanarak bunlardan kaçtım . Hangi gayet iyi çalışıyor yani Octet biçimi Dize sonuçları. Aşağıdaki örneğe bakın,
Giriş Dizesi: \n\t\f\b\p\k\j\l\mestPrepared
Çıktı Dizesi: \\012\\011\\014\\010pkjlmestPrepared
Çıktı Dizesi veritabanına eklenir. Şimdi veriyi JDBC kullanarak bir java kodunda veritabanından alıyorum. Dizeyi orijinal değerine geri nasıl kaldırabilirim?
İki olası yaklaşım düşündüm,
- Veritabanı alma sorgusunu değiştirin ve bu alanı postgres, yani bytea'yı metne dönüştürebilecek herhangi bir String manipülasyon fonksiyonuna geçirin.
- Kod çözmeyi Java kodunda yapın.
1. yaklaşımın daha verimli olacağını anlayabiliyorum. Burada listelenen hemen hemen tüm fonksiyonları denedim ama hiçbir şey çalışmıyor. Lütfen yardım et!!
Linux makinede postgres 8.4 sürümünü kullanıyorum.
ResultSet.getBytes()
?