- Post-Methode:
request.setCharacterEncoding("UTF-8");
param = request.getParameter("paramName");
- Get-Methode:
Der Browser verwendetUTF-8
standardmäßig die URL-Codierung, während Tomcat die erhaltenen Parameter standardmäßig decodiertISO-8859-1
.ISO-8859-1
Die Lösung besteht also darin , encode zu verwenden , das entsprechende abzurufenBytes
und dann die Bytes als zu kodierenUTF-8
. Denn unabhängig von der Codierungsmethode sind die zugrunde liegenden Bytedaten dieselben.
Die offizielle Erklärung von Stringpublic byte[] getBytes(Charset charset)
lautet:
Kodiert diesen String mithilfe des angegebenen Zeichensatzes in eine Folge von Bytes.
param = request.getParameter("paramName");
String newParam = new String(param.getBytes("ISO-8859-1"); "UTF-8")
Warum gibt es jetzt eine Platzbeschränkung? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?