Für im Post-Modus übermittelte Daten können Sie request.setCharacterEncoding("gb2312"); explizit angeben, welche Codierung beim Abrufen von Anforderungsparametern verwendet werden soll. Diese Methode gilt jedoch nur für die Übermittlung von Beiträgen.
request.setCharacterEncoding("gb2312"); Der Grund, warum es für die GET-Übermittlung ungültig ist, liegt darin, dass dieser Code nur die Codierung der Anforderungsentität festlegt und die von GET übermittelten Daten in der Anforderungszeile gespeichert werden [ Ressourcenname?param1 ="Zhang San"¶m2=123], daher ist die GET-Anforderungsmethode ungültig.
Für Daten, die mit der Get-Methode übermittelt werden, können Sie den verstümmelten Code nur manuell lösen:
String newName=newString(name.getBytes("ISO8859-1"),"gb2312"); String user=newString(request.getParameter("user").getBytes("ISO-8859-1"),"UTF-8");
Natürlich ist diese Methode auch für die Post-Methode wirksam.
Die URIE-Kodierung des HTTP-Connectors kann in der server.xml von Tomcat konfiguriert werden, um die vom Server standardmäßig verwendete Kodierung beim Abrufen von Anforderungsparametern anzugeben.
Die folgenden Anweisungen werden normalerweise in Servlets verwendet, um das Problem verstümmelter chinesischer Zeichen zu lösen:
request.setCharacterEncoding() dient dazu, den aus der Anfrage erhaltenen Wert oder den aus der Anfrage entnommenen Wert festzulegen Datenbank.
Der Zweck von Response.setContentType () besteht darin, das Verhalten des Browsers zu steuern, dh den Browser so zu steuern, dass er die angegebene Codierung zum Decodieren verwendet (geben Sie die Codierung der HTTP-Antwort an und geben Sie die angezeigte Codierung an). durch den Browser).
response.setCharacterEncoding() wird verwendet, um das Problem der von Response.getWriter() ausgegebenen verstümmelten Zeichenfolgen zu lösen. Wenn es sich um Response.getOutputStream() handelt, ist diese Lösung nicht erforderlich, da dieser Satz es bedeutet besteht darin, die Daten im Antwortobjekt in UTF-8 zu dekodieren und an den Browser zu senden.
response.getOutputStream().write("Chinese".getBytes()) gibt Daten aus. Dies ist ein Byte-Stream, der zum Schreiben in den Speicher verwendet wird.
Weitere Java-Kenntnisse finden Sie in der Spalte Java Basic Tutorial auf der chinesischen PHP-Website.
Das obige ist der detaillierte Inhalt vonLösung für das Problem mit verstümmelten Java-Parametern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!