Konuyu görüntüle
IUCODERS FORUM > Programlama > JAVA > jsp/jstl : form submit char. encoding
Yazar
moonspell


avatar

Kayıt: 16.02.2006
06.06.2006-17:51 #7546
Sistemimde hersey utf8 olmasına ragmen veritabanina form araciligiyla birseyler yazarken karakter kodlaması 8859-1 oluyor.Ve hersey sapitiyor.

Ilk baslarda jdbc'nin baglanirken utf8 baglanmadigini dusunuyordum ancak sonraki arastirmalarimda formlarin yalnizca 8859-1 ile submit edilebilecegine dair birseyler okudum.

Yardim edebilecek olan?
Tesekkurler...






Software is like sex... its better when its free
Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
06.06.2006-18:03 #7547
 
<%@page pageEncoding="ISO-8859-9"%>

problemli olabilir.
database deki tablonun yapısı utf-8 yada latin-5 olmayabilir.
databasedeki veri türkçe fakat geri alırken karakterler bozuluyo olabilir.
 

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import java.io.IOException;

public class RequestCharacterEncodingFilter implements Filter {

private String encoding = "UTF-8";

public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain) throws IOException, ServletException
{
request.setCharacterEncoding(encoding);
chain.doFilter(request, response);

}

public void destroy() { }

}



bunu web filter olarak ekle kodu editledim boyle çalışması lazım.





N/A
Yazar
moonspell


avatar

Kayıt: 16.02.2006
07.06.2006-12:21 #7561
Veritabani tamamen utf8,
jsp dosyalarinin hepsinde

<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>

var,html headerlari da utf 8,sayfa goruntulerken sorun yok,ya da veritabanindan elle girdigim datalari cekerken,ancak sitedeki bir form araciligiyla veritabanina data girdigimde karakterler bozuk gorunuyor.

senin gonderdigin kodda aslinda yukaridakinden farkli birsey yapmiyor.





Software is like sex... its better when its free
Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
07.06.2006-16:40 #7571
ben boyle cözüyordum bu problemi.
 
String b="aaa";//bozuk karakterli olan bu olsun
String a=new String(b.getBytes("ISO-8859-1"),"ISO-8859-9");

yada
 
String a=new String(b.getBytes("ISO-8859-1"),"UTF-8");

bu ya tomcatten kaynaklı bir sorun gibime geliyor çünkü veri aslında doğru geliyor fakat ekrana düzgün basılamıyor.
bide mysql connection URL sinde encoding verilebiliyo ama bilmiyorum nasıl yapılıyor.
Mesela SQL Server da varchar olarak alanı seçince encoding problemi yaşamıyorum ama nvarchar deyince veriler bozuluyordu.






N/A
Yazar
moonspell


avatar

Kayıt: 16.02.2006
07.06.2006-17:53 #7573
utf8 ile baglanmak icin connection stringine
"?useUnicode=true&characterEncoding=UTF-8" eklemek gerekiyor.

Ve sanirim haklisin hata tomcat'ten kaynaklaniyor boyle birseyler okudum dun.





Software is like sex... its better when its free
Yazar
moonspell


avatar

Kayıt: 16.02.2006
07.06.2006-18:04 #7575
her jsp dosyasinin basina

<fmt:requestEncoding/>
<fmt:setLocale value="tr" scope="session"/>

jstl taglarini ekleyince sorun cozuldu tesekkurler...

/*
*bu kadar basit olmamaliydi :)
*/







Software is like sex... its better when its free
Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
07.06.2006-19:54 #7584
eywalla hacim orenmiş olduk. ama yalnız bu jdk5 ile geldi sanırım. ama emin değilim. bu setlocale mevzuları yeni baya





N/A
Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb