Es gibt viele Lösungen für den Umgang mit der Zeichenkodierung im Internet. Hier stehe ich auf den Schultern meiner Vorgänger und erstelle meine eigene Zusammenfassung.
Meiner Meinung nach besteht die Lösung für das Problem des verstümmelten Codes einfach darin, die Codierung an drei Stellen festzulegen:
1. Front-End-Seiten wie HTML und JSP; > 2. Die Anforderungs- und Antwortobjekte im Hintergrundservlet
3. Serverkonfigurationsdatei.
1. Wenn die Codierung auf Frontend-Seiten wie HTML und JSP angezeigt wird, prüfen Sie zunächst, ob das Meta-Tag einer Frontend-Seite korrekt eingestellt ist auch die Kopfzeile der Seite
<span style="background-color: #ffff00; color: #000000"><%</span><span style="background-color: #f5f5f5; color: #000000">@ page language</span><span style="background-color: #f5f5f5; color: #000000">=</span><span style="background-color: #f5f5f5; color: #800000">"</span><span style="background-color: #f5f5f5; color: #800000">java</span><span style="background-color: #f5f5f5; color: #800000">"</span><span style="background-color: #f5f5f5; color: #000000"> import</span><span style="background-color: #f5f5f5; color: #000000">=</span><span style="background-color: #f5f5f5; color: #800000">"</span><span style="background-color: #f5f5f5; color: #800000">java.util.*</span><span style="background-color: #f5f5f5; color: #800000">"</span><span style="background-color: #f5f5f5; color: #000000"> pageEncoding</span><span style="background-color: #f5f5f5; color: #000000">=</span><span style="background-color: #f5f5f5; color: #800000">"</span><span style="background-color: #f5f5f5; color: #800000">utf-8</span><span style="background-color: #f5f5f5; color: #800000">"</span><span style="background-color: #ffff00; color: #000000">%><br></span>2 Hintergrundanforderungs- und Antworteinstellungen
2-1 Wenn es keine Anforderungseinstellung gibt, ist der Inhalt der empfangenen Anforderung verstümmelt. Zu diesem Zeitpunkt sollten zwei Situationen berücksichtigt werden:
2-1-1 Wenn es sich um eine Get-Anfrage handelt, erhalten Sie sie zuerst die Parameter in der URL-Anfrage, zum Beispiel:
Rufen Sie dann das String-Objekt auf, um die Konvertierung der Parameterkodierung abzuschließen,String method = request.getParameter("method");
Hier gibt es zwei Konstruktionsmethoden für String-Parameter: Konvertieren Sie den Parameter als ersten Parameter von der Form einer Zeichenfolge in ein Zeichenarray, und der zweite Parameter ist die Codierungsmethode der konvertierten Zeichenfolge.
String parseMethod = new String(method.getBytes("ISO-8859-1"),"UTF-8");
2-1-2. Wenn es sich um eine Post-Anfrage handelt, fügen Sie direkt einen Code hinzu, um die Codierung festzulegen, bevor Sie die Anforderungsparameter abrufen, dh rufen Sie die setCharacterEncoding-Methode des Anforderungsobjekts auf So legen Sie die Codierung fest:
request.setCharacterEncoding("UTF-8");2.2 Nachdem das Backend die Geschäftslogik- und Persistenzvorgänge abgeschlossen hat, kann es erforderlich sein, die Antwortstromdaten an auszugeben Das Frontend. Wenn der Ausgabeinhalt Chinesisch enthält, müssen Sie die Codierung des Antwortobjekts festlegen. Sie können die setContentType-Methode des Antwortobjekts direkt aufrufen:
response.setContentType("text/html;charset=utf-8");3. Einstellungen der Serverkonfigurationsdatei
Sollten die aktuellen beiden Schritte nach der Einrichtung immer noch nicht funktionieren, sollten Sie auch die Serverkonfigurationsdatei server.xml im Ordner conf unter dem Installationsverzeichnis von finden Der Server. Meiner ist zum Beispiel E: tomcat7.0conf. Einstellungen:
Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem der verstümmelten Zeichenkodierung in der JavaEE-Entwicklung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!