Configuration

locale
LANG=cs_CZ.ISO-8859-2
LC_CTYPE=cs_CZ.ISO-8859-2
LC_NUMERIC=cs_CZ.ISO-8859-2
LC_TIME=cs_CZ.ISO-8859-2
LC_COLLATE=cs_CZ.ISO-8859-2
LC_MONETARY=cs_CZ.ISO-8859-2
LC_MESSAGES=cs_CZ.ISO-8859-2
LC_PAPER=cs_CZ.ISO-8859-2
LC_NAME=cs_CZ.ISO-8859-2
LC_ADDRESS=cs_CZ.ISO-8859-2
LC_TELEPHONE=cs_CZ.ISO-8859-2
LC_MEASUREMENT=cs_CZ.ISO-8859-2
LC_IDENTIFICATION=cs_CZ.ISO-8859-2
LC_ALL=

java -version
java version "1.5.0_08"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_08-b03)
Java HotSpot(TM) Client VM (build 1.5.0_08-b03, mixed mode, sharing)

uname -a
Linux 2.6.17-5mdv #1 SMP Wed Sep 13 14:28:02 EDT 2006 x86_64 AMD Sempron(tm) Processor 3200+ GNU/Linux

TCP Dump

testUtf.jsp

POST /test/servlet HTTP/1.1
Content-Type: application/x-www-form-urlencoded

note=%C5%BE%C3%AD%C5%BEala

GET /test/servlet?note=%C5%BE%C3%AD%C5%BEala HTTP/1.1

testLatin2.jsp

POST /test/servlet HTTP/1.1
Content-Type: application/x-www-form-urlencoded

note=%BE%ED%BEala

GET /test/servlet?note=%BE%ED%BEala HTTP/1.1

Tests with Jetty 4.1

no initialization

testLatin2.jsp - recoding neccessary

POST:
parameter has value: ?í?ala
parameter.getBytes("ISO-8859-1") has value: žížala
parameter.getBytes("ISO-8859-2") has value: ?í?ala
parameter.getBytes("UTF-8") has value: žížala

GET:
parameter has value: ?í?ala
parameter.getBytes("ISO-8859-1") has value: žížala
parameter.getBytes("ISO-8859-2") has value: ?í?ala
parameter.getBytes("UTF-8") has value: žížala

testUtf.jsp - wrong

POST:
parameter has value: ???­??ala
parameter.getBytes("ISO-8859-1") has value: ŞíŞala
parameter.getBytes("ISO-8859-2") has value: ???­??ala
parameter.getBytes("UTF-8") has value: �ž�­�žala

GET:
parameter has value: ???­??ala
parameter.getBytes("ISO-8859-1") has value: ŞíŞala
parameter.getBytes("ISO-8859-2") has value: ???­??ala
parameter.getBytes("UTF-8") has value: �ž�­�žala

requestEncoding set to ISO-8859-2

testLatin2.jsp - OK

POST:
parameter has value: žížala
parameter.getBytes("ISO-8859-1") has value: ?í?ala
parameter.getBytes("ISO-8859-2") has value: žížala
parameter.getBytes("UTF-8") has value: ŞíŞala

GET:
parameter has value: žížala
parameter.getBytes("ISO-8859-1") has value: ?í?ala
parameter.getBytes("ISO-8859-2") has value: žížala
parameter.getBytes("UTF-8") has value: ŞíŞala

testUtf.jsp - wrong

POST:
parameter has value: ŞíŞala
parameter.getBytes("ISO-8859-1") has value: ???­??ala
parameter.getBytes("ISO-8859-2") has value: ŞíŞala
parameter.getBytes("UTF-8") has value: ĚŞ�­ĚŞala

GET:
parameter has value: ŞíŞala
parameter.getBytes("ISO-8859-1") has value: ???­??ala
parameter.getBytes("ISO-8859-2") has value: ŞíŞala
parameter.getBytes("UTF-8") has value: ĚŞ�­ĚŞala

requestEncoding set to ISO-8859-1

testLatin2.jsp - recoding neccessary

POST:
parameter has value: ?í?ala
parameter.getBytes("ISO-8859-1") has value: žížala
parameter.getBytes("ISO-8859-2") has value: ?í?ala
parameter.getBytes("UTF-8") has value: žížala

GET:
parameter has value: ?í?ala
parameter.getBytes("ISO-8859-1") has value: žížala
parameter.getBytes("ISO-8859-2") has value: ?í?ala
parameter.getBytes("UTF-8") has value: žížala

testUtf.jsp - wrong

POST:
parameter has value: ???­??ala
parameter.getBytes("ISO-8859-1") has value: ŞíŞala
parameter.getBytes("ISO-8859-2") has value: ???­??ala
parameter.getBytes("UTF-8") has value: �ž�­�žala

GET:
parameter has value: ???­??ala
parameter.getBytes("ISO-8859-1") has value: ŞíŞala
parameter.getBytes("ISO-8859-2") has value: ???­??ala
parameter.getBytes("UTF-8") has value: �ž�­�žala

requestEncoding set to UTF-8

testLatin2.jsp - wrong

POST: 
parameter has value: ??ala
parameter.getBytes("ISO-8859-1") has value: ??ala
parameter.getBytes("ISO-8859-2") has value: ??ala
parameter.getBytes("UTF-8") has value: ��ala

GET:
parameter has value: ??ala
parameter.getBytes("ISO-8859-1") has value: ??ala
parameter.getBytes("ISO-8859-2") has value: ??ala
parameter.getBytes("UTF-8") has value: ��ala

testUtf.jsp - OK

POST:
parameter has value: žížala
parameter.getBytes("ISO-8859-1") has value: ?í?ala
parameter.getBytes("ISO-8859-2") has value: žížala
parameter.getBytes("UTF-8") has value: ŞíŞala

GET:
parameter has value: žížala
parameter.getBytes("ISO-8859-1") has value: ?í?ala
parameter.getBytes("ISO-8859-2") has value: žížala
parameter.getBytes("UTF-8") has value: ŞíŞala

Tests with Jetty 6.0.2

no initialization

testLatin2.jsp - wrong

POST:
parameter has value: ??la
parameter.getBytes("ISO-8859-1") has value: ??la
parameter.getBytes("ISO-8859-2") has value: ??la
parameter.getBytes("UTF-8") has value: ??la

GET:
parameter has value: ??la
parameter.getBytes("ISO-8859-1") has value: ??la
parameter.getBytes("ISO-8859-2") has value: ??la
parameter.getBytes("UTF-8") has value: ??la

testUtf.jsp - OK

POST:
parameter has value: žížala
parameter.getBytes("ISO-8859-1") has value: ?í?ala
parameter.getBytes("ISO-8859-2") has value: žížala
parameter.getBytes("UTF-8") has value: ŞíŞala

GET:
parameter has value: žížala
parameter.getBytes("ISO-8859-1") has value: ?í?ala
parameter.getBytes("ISO-8859-2") has value: žížala
parameter.getBytes("UTF-8") has value: ŞíŞala

requestEncoding set to ISO-8859-2

testLatin2.jsp - POST OK, GET wrong

POST:
parameter has value: žížala
parameter.getBytes("ISO-8859-1") has value: ?í?ala
parameter.getBytes("ISO-8859-2") has value: žížala
parameter.getBytes("UTF-8") has value: ŞíŞala

GET:
parameter has value: ??la
parameter.getBytes("ISO-8859-1") has value: ??la
parameter.getBytes("ISO-8859-2") has value: ??la
parameter.getBytes("UTF-8") has value: ??la

testUtf.jsp - POST wrong, GET OK

POST:
parameter has value: ŞíŞala
parameter.getBytes("ISO-8859-1") has value: ???­??ala
parameter.getBytes("ISO-8859-2") has value: ŞíŞala
parameter.getBytes("UTF-8") has value: ĚŞ�­ĚŞala

GET:
parameter has value: žížala
parameter.getBytes("ISO-8859-1") has value: ?í?ala
parameter.getBytes("ISO-8859-2") has value: žížala
parameter.getBytes("UTF-8") has value: ŞíŞala

requestEncoding set to ISO-8859-1

testLatin2.jsp - POST needs recoding, GET wrong

POST:
parameter has value: ?í?ala
parameter.getBytes("ISO-8859-1") has value: žížala
parameter.getBytes("ISO-8859-2") has value: ?í?ala
parameter.getBytes("UTF-8") has value: žížala

GET:
parameter has value: ??la
parameter.getBytes("ISO-8859-1") has value: ??la
parameter.getBytes("ISO-8859-2") has value: ??la
parameter.getBytes("UTF-8") has value: ??la

testUtf.jsp - GET ok, POST wrong

POST:
parameter has value: ???­??ala
parameter.getBytes("ISO-8859-1") has value: ŞíŞala
parameter.getBytes("ISO-8859-2") has value: ???­??ala
parameter.getBytes("UTF-8") has value: �ž�­�žala

GET:
parameter has value: žížala
parameter.getBytes("ISO-8859-1") has value: ?í?ala
parameter.getBytes("ISO-8859-2") has value: žížala
parameter.getBytes("UTF-8") has value: ŞíŞala

requestEncoding set to UTF-8

testLatin2.jsp - wrong

POST: 
parameter has value: ??la
parameter.getBytes("ISO-8859-1") has value: ??la
parameter.getBytes("ISO-8859-2") has value: ??la
parameter.getBytes("UTF-8") has value: ??la

GET:
parameter has value: ??la
parameter.getBytes("ISO-8859-1") has value: ??la
parameter.getBytes("ISO-8859-2") has value: ??la
parameter.getBytes("UTF-8") has value: ??la

testUtf.jsp - OK

POST:
parameter has value: žížala
parameter.getBytes("ISO-8859-1") has value: ?í?ala
parameter.getBytes("ISO-8859-2") has value: žížala
parameter.getBytes("UTF-8") has value: ŞíŞala

GET:
parameter has value: žížala
parameter.getBytes("ISO-8859-1") has value: ?í?ala
parameter.getBytes("ISO-8859-2") has value: žížala
parameter.getBytes("UTF-8") has value: ŞíŞala

Tests with Jetty 6.1.0 RC3

no initialization

testLatin2.jsp - wrong

POST:
parameter has value: ??la
parameter.getBytes("ISO-8859-1") has value: ??la
parameter.getBytes("ISO-8859-2") has value: ??la
parameter.getBytes("UTF-8") has value: ??la

GET:
parameter has value: ??la
parameter.getBytes("ISO-8859-1") has value: ??la
parameter.getBytes("ISO-8859-2") has value: ??la
parameter.getBytes("UTF-8") has value: ??la

testUtf.jsp - OK

POST:
parameter has value: žížala
parameter.getBytes("ISO-8859-1") has value: ?í?ala
parameter.getBytes("ISO-8859-2") has value: žížala
parameter.getBytes("UTF-8") has value: ŞíŞala

GET:
parameter has value: žížala
parameter.getBytes("ISO-8859-1") has value: ?í?ala
parameter.getBytes("ISO-8859-2") has value: žížala
parameter.getBytes("UTF-8") has value: ŞíŞala

requestEncoding set to ISO-8859-2

testLatin2.jsp - POST OK, GET wrong

POST:
parameter has value: žížala
parameter.getBytes("ISO-8859-1") has value: ?í?ala
parameter.getBytes("ISO-8859-2") has value: žížala
parameter.getBytes("UTF-8") has value: ŞíŞala

GET:
parameter has value: ??la
parameter.getBytes("ISO-8859-1") has value: ??la
parameter.getBytes("ISO-8859-2") has value: ??la
parameter.getBytes("UTF-8") has value: ??la

testUtf.jsp - 

POST: GET OK, POST wrong
parameter has value: ŞíŞala
parameter.getBytes("ISO-8859-1") has value: ???­??ala
parameter.getBytes("ISO-8859-2") has value: ŞíŞala
parameter.getBytes("UTF-8") has value: ĚŞ�­ĚŞala

GET:
parameter has value: žížala
parameter.getBytes("ISO-8859-1") has value: ?í?ala
parameter.getBytes("ISO-8859-2") has value: žížala
parameter.getBytes("UTF-8") has value: ŞíŞala

requestEncoding set to ISO-8859-1

testLatin2.jsp - GET wrong, GET needs recoding

POST:
parameter has value: ?í?ala
parameter.getBytes("ISO-8859-1") has value: žížala
parameter.getBytes("ISO-8859-2") has value: ?í?ala
parameter.getBytes("UTF-8") has value: žížala

GET:
parameter has value: ??la
parameter.getBytes("ISO-8859-1") has value: ??la
parameter.getBytes("ISO-8859-2") has value: ??la
parameter.getBytes("UTF-8") has value: ??la

testUtf.jsp - POST wrong, GET OK

POST:
parameter has value: ???­??ala
parameter.getBytes("ISO-8859-1") has value: ŞíŞala
parameter.getBytes("ISO-8859-2") has value: ???­??ala
parameter.getBytes("UTF-8") has value: �ž�­�žala

GET:
parameter has value: žížala
parameter.getBytes("ISO-8859-1") has value: ?í?ala
parameter.getBytes("ISO-8859-2") has value: žížala
parameter.getBytes("UTF-8") has value: ŞíŞala

requestEncoding set to UTF-8

testLatin2.jsp - wrong

POST: 
parameter has value: ??la
parameter.getBytes("ISO-8859-1") has value: ??la
parameter.getBytes("ISO-8859-2") has value: ??la
parameter.getBytes("UTF-8") has value: ??la

GET:
parameter has value: ??la
parameter.getBytes("ISO-8859-1") has value: ??la
parameter.getBytes("ISO-8859-2") has value: ??la
parameter.getBytes("UTF-8") has value: ??la

testUtf.jsp - OK

POST:
parameter has value: žížala
parameter.getBytes("ISO-8859-1") has value: ?í?ala
parameter.getBytes("ISO-8859-2") has value: žížala
parameter.getBytes("UTF-8") has value: ŞíŞala

GET:
parameter has value: žížala
parameter.getBytes("ISO-8859-1") has value: ?í?ala
parameter.getBytes("ISO-8859-2") has value: žížala
parameter.getBytes("UTF-8") has value: ŞíŞala