JanKoWeb: Tvorba webu - Java EE: nesprávné kódování po odeslání formuláře
"Nemusí pršet, stačí když kape..."
JanKoWeb - návody, postřehy a rady ze světa softwaru pro každého.
Recenze knih a humorná tvorba pro chvíle oddechu...

Do východu slunce 1 hodina a 54 minut (vyjde 05:06, zapadne 21:09).

"1"

V. Havel
Galerie nemohla být načtena.
Jméno:
Číselně: dva a šest je
Co na mě tak koukáte?
Při každém obnovení stránky se zde vypíše zpráva skriptu.

Skript je zdrojový kód interpretovaného programu.

Pohání celý tento web a rád komunikuje s návštěvníky.-)
RSS RSS zdroj článků a novinek

Java EE: nesprávné kódování po odeslání formuláře

S Java EE jsem začínal, když jsem narazil na zdánlivou drobnost. Po odeslání formuláře se text do databáze (případně do chybové hlášky, když nebyla vyplněna další pole) vsunul se zmršenou diakritikou - jako třeba

ščřčřáéíýáž

hádejte, co to je? :-)

Mno, gůglil jsem a vztekal se téměř tři dny, než jsem nalezl řešení. Krom toho, že nepředstavitelné množství nalezených návodů nefungovalo, jsem vytrvale přehlížel konzoli GlassFishe s hláškou:

WARNING: PWC4011: Unable to set request character encoding to UTF-8 from context , because request parameters have already been read, or ServletRequest.getReader() has already been called.

Nakonec pomohlo ručně vytvořit soubor "WEB-INF/glassfish-web.xml" s tímto obsahem:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" 
"http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app error-url="">
    <class-loader delegate="true"/>
    
    <jsp-config>
        <property name="keepgenerated" value="true">
            <description>Keep a copy of the generated servlet class' java code.</description>
        </property>
    </jsp-config>
 
    <!-- Change the default character encoding from ISO-8859-1 to UTF-8 -->
    <parameter-encoding default-charset="UTF-8"/>
</glassfish-web-app>

Reference

GlassFish Default Encoding ISO-8859-1 (zde jsem našel řešení).

K pochopení problematiky

Osobně mi řešení v níže uvedených článcích přímo nepomohly, ale uvádím je, protože pro mnohé uživatele by řešení představovat asi mohly a hlavně mi sloužily k lepšímu pochopení problematiky:

Java – znakové kódování, České znaky v JSP stránkách, Request parameter encoding, WARNING: PWC4011: Unable to set request character encoding to UTF-8 from context , because request parameters have already been read, or ServletRequest.getReader() has already been called.

web.xml Reference Guide for Tomcat - pro zajímavost, co všechno za nastavení se dá psát do web.xml (neplést s glassfish-web.xml!).

Rubrika Tvorba webu | Tagy Java EE, Problém, Kódování, čeština | Ne 06.05.2012 | 2773x

Náhodné články

© 2008-2025 JK, kontakt, právní upozornění
Powered by Janko's RS| XHTML, CSS, RSS, analýza kódu, SEO servis, dostupnost, hosting, líbí se Vám tu?
Požadavek: 0.89443 s, generování: 0.03055 s, paměť: 1.21 MB, sql dotazů: 8, CPU: 20.21

.