16. maj 2005 - 13:05Der er
7 kommentarer og 1 løsning
Encoding problem i Tomcat, Struts eller ?
Problemstilling: Danske bogstaver modtages kan ikke udskrives i Struts action:
1) Jeg har en jsp siden med følgende angivelse:
<%@ page contentType="text/html;charset=UTF-8" %>
samt et par tilhørende input felter. Det angiver - mig bekendt - at siden benytter - som skrevet står UTF encoding. Danske karakter i html koden kan altså ikke benyttes direkte.
2) Jeg har lavet et servlet filter som sætter encoding til UTF-8.
3) I min action klasse står der ganske rigtigt at der er anvendt UTF encoding.
4) Når brugeren indtaster æ ø å så kan de imidlertidigt ikke genskabes ved System.out.print i action klassen. Heller ikke selvom jeg hardcoder ÆØÅ i en string.
5) Hvis jeg laver et almindeligt Java program og anvender fx. actionForm klassen, jamen så skrives ÆØÅ korrekt ud (ved hardcoding).
Ovenstående antyder altså at der er en eller anden setting i Tomcat, Struts, JVM eller .... som ikke bliver sat korrekt. Nogle der har et bud?
Shit .... hvor dum har man lov til at være. Du har jo så indlysende helt ret. Jeg kører min applikation i Eclipse, men som web applikation i Tomcat og udskriver til et DOS window.
jeg udskriver følgende:
FileOutputStream fin = new FileOutputStream ("c:\\Test.txt"); fin.write(iform.getUserName().getBytes("iso-8859-1")); fin.close();
og ser nu helt korrekt ÆØÅ ....
Når jeg skal den modsatte vej (fra databasen) skal jeg formodentlig blot den modsatte vej fra iso-8859-1 til UTF-8?
jeg er lidt i tvivl om hvad du mener med den modsatte vej
Synes godt om
Ny brugerNybegynder
Din løsning...
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.