Hali
A probléma: Egy jsp oldalon adatbázisból jövő információkat jelenítek meg , mivel ez az oldal sokszor kell ezért egy objektumban tárolom a lekérdezés eredményét, mégpedig úgy hogy van egy Map gyűjtemény. Az Object egy wrapper osztály a soroknak. Minden utf8 , az adatbázis és a megjeelnítés is meg az os is utf8at használ. A gond az hogy amikor a jspt közvetlenül érem el akkor az információ helyes kódolással jelenik meg mikor viszont egy kérésre adott válaszként kapom akkor az ű és ő betűk helyén csak kérdőjel van.
Van vaalkinek ötlete hogy ezt miért csinálja?
Köszönöm.
- 1183 megtekintés
Hozzászólások
Mit jelent pontosan, hogy keresre adott valaszkent kapod? Egy servlet forward()-dal tovabbitja a kerest a jsp-nek?
- A hozzászóláshoz be kell jelentkezni
servlethez érkező kérésre a válasz ez a jsp
- A hozzászóláshoz be kell jelentkezni
1. jsp-be:
<%@ page contentType="text/html; charset=UTF-8" %>
2. jdbc url-be paraméterként szintén beállítani az encoding-ot (drivertől függ, hogyan)
3. Egy request filtert csinálni, ami legalább ezeket csinálja: request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8");
Ezek után jónak kéne lennie.
- A hozzászóláshoz be kell jelentkezni
En is a 3-at akartam javasolni, mert az 1 gondolom mar ott van.
- A hozzászóláshoz be kell jelentkezni
1. az megvan
2. sejtésem sincs hogy kéne , mysql esteén
3. filterekkel még nemigazán foglalkoztam , megnézem
Köszi a választ
- A hozzászóláshoz be kell jelentkezni
2. Röviden: a jdbc url-hez hozzácsapod a characterEncoding=UTF-8 name/value párost, illetve a useUnicode értéke legyen true, tehát jdbc:mysql://host:port/db?useUnicode=true&characterEncoding=UTF-8
Hosszan: Connector-J dokumentáció
3. Az adott probléma megoldásához elég, ha a servletbe kerül a response.setCharacterEncoding("UTF-8"), de akkor az összes ilyen servletbe be kell írni, a filter, ha úgy van map-elve, akkor meg minden requestre lefut a servlet meghívása előtt.
- A hozzászóláshoz be kell jelentkezni
Hi
Köszi a válaszokat.
Megadtam a jdbc drivernek az encoding utasításokat , valamint létrehoztam egy filtert (netbeansben egyzserűb mint hittem) és mivel gyorsan ki akartam próbálni a dobeforeProcessing és a doAfterProcessing is betettem a response.setCharacterEncoding("UTF-8") és request.setCharacterEncoding("UTF-8") sorokat.
Az eredmény hogy mostmár más karakterek is rosszul jelennek meg nem csak az ő és ű.
- A hozzászóláshoz be kell jelentkezni
Egy olyan filtert kell készíteni, ami a javax.servlet.Filter interface-t implementálja, annak is a doFilter(...) metódusa a lényeges, és a web.xml-ben pedig a filter és a filter-mapping tag-eket kell használni. A leírtak alapján valamilyen más filter készült el.
- A hozzászóláshoz be kell jelentkezni
A filter jó , csak mikor régebben küzdöttem evvela problémával megpróbáltam azt hogy latin2-re álítom és az egyik jspben iso-8859-2 őn maradt a kódolás.
Mostmár megy nagyon szépen.
Köszönök mindent.
iwanabeguru
- A hozzászóláshoz be kell jelentkezni
Szívesen, örülök, hogy sikerült.
- A hozzászóláshoz be kell jelentkezni