24. august 2009 - 10:40Der er
7 kommentarer og 1 løsning
Struts/j2ee replace input.
Jeg har et site kørende som nu er begyndt at blive brugt i Østeuropa, heraf følger de næsten obligatoriske fejl vedr. tegnsæt. (Man har fra begyndelsen ikke brugt UTF-noget).
På den korte bane vil jeg gerne løse det ved at erstatte underlige tegn med nogle vesteuropæiske lookalikes :) sådan at eks:
Ą( Ą ) -> A osv.
Tænkte at jeg bare kunne lave min egen specialisering af BaseFieldTag og så override getValue. Men.... det ser ikke ud til at det er den metode der bliver brugt til at fylde ens bean.
(Og ja, jeg ved godt det ikke er den bedste løsning osv.)
Nogen (Sikkert Arne_v :) ) - der har en god ide til det? Har ikke lyst til at klister sådan noget replace ind på alle mine getter og setter over alt i koden :)
1) Er det ikke nemmere at skifte til UTF-8 end at lave et hack?
Java koerer jo allerede Unicode internt, hvis databasen forstaar unicode eller UTF-8 er det vel mest et spoergsmaal om at aendre charset i HTML & HTTP.
2)
Hvis du vil fifle, saa proev og lav et servlet filter hvor du sender en HttpServletRequestWrapper med som wrapper den rigtige HttpServletRequest men har overrided diverse getParameter metoder.
ad 1) Jo, det var også det jeg helst ville, men det er, af forskellige årsager jeg ikke fatter, ikke muligt. (Noget med at databasen bliver brugt af en mulliard andre ting som er preUTF8 og i 201X forventer man at have opgraderet den del, og derfor..... standard snak) Det bliver naturligvis løst i version 2 af systemet.
Den ligger jo lige til højrebenet her, hvorfor tænkte jeg ikke på det - servlet er klart.
arne_v, dit filter ville være en ret sjov 1.lirpa joke.
min løsning er næsten den samme, men griber bare ind i doPost, da det er input kun jeg skal bruge. men ellers er der bare at sige enmillion tak --- endnu engang.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.