jsp vs utf 8

Fórumok

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.

Hozzászólások

Mit jelent pontosan, hogy keresre adott valaszkent kapod? Egy servlet forward()-dal tovabbitja a kerest a jsp-nek?

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.

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.

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 ű.

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.