Im Java -Webprojekt wird die Methode zur Lösung chinesischer verstümmelter Code wie folgt zusammengefasst
Der erste Fall: Aufrufen der JSP -Seite, um verstümmelten Code in chinesischen <br /> Problembeschreibung anzuzeigen : Wenn Sie die JSP -Seite über den Browser aufrufen, wird in chinesischen Inhalten im Browser angezeigt.
Lösung: Bestätigen Sie zunächst, dass dieser JSP den Dateiinhalt im Editor speichert, sondern das Codierungsformat von UTF-8 verwendet und dann <%@ pageCoding = "UTF-8"%> zum Beginn der JSP-Seite hinzufügen, um dieses Problem des verstümmelten Chinesens zu lösen
Der zweite Fall: Das Aufrufen der Servlet -Seite zeigt verstümmelten Code
Problembeschreibung: Wenn Sie Servlet durch den Browser anrufen, erscheint der im Servlet angezeigte Inhalt verstümmelt.
Lösung: Bevor das Servlet das Antwortobjekt zur Ausgabe verwendet, führen Sie die Antwort aus. Stellen Sie die Codierung des Ausgabeinhalts auf UTF-8 ein.
Der dritte Fall: verstümmelte Parameter, die in Post -Form bestehen
Problembeschreibung: Wenn die Parameter über die Formularelemente in JSP, HTML oder Servlet an den entsprechenden JSP oder Servlet übermittelt werden, werden die in der empfangenen JSP oder Servlet empfangenen Parameter auf Chinesisch angezeigt.
Zum Beispiel:
Senden Sie den JSP -Code wie folgt:
<%@ page Language = "java" pageCoding = "utf-8"%> <html> <kopf> <titels> Eingabedformular </title> </head> <body> <form id = "inputForm" name = "inputform" methode = "post" action = "display.jsp"> username: <input type = "text" name "name" name "username"/username "/username"/username "/</> </> </> </> </> <Bruns" Passwort: "Passwort" Passwort "Passwort" Passwort "Passwort" Passwort "Passwort" Passwort "Passwort:" Passwort "Passwort" Passwort "Passwort" Passwort "Pass." name = "password"/> <br/> <Eingabe type = "surenden" name = "value =" sureichen "// </by> </body> </html>
Der JSP -Code, der Parameter empfängt, lautet wie folgt:
<% @ page Language = "java" pageCoding = "utf-8"%> <html> <kopf> <tilte> Empfangsformular </title> </head> <body> <% Anfrage einfügen. %> Benutzername: <%= Request.GetParameter ("Benutzername")%> <br/> Passwort: <%= Request.GetParameter ("Passwort")%> <br/> </body> </html>Lösung: Verwenden Sie vor Empfang der übermittelten post-Parameter die Anforderung. Siehe den Inhalt des Empfangsformulars einfügen. Natürlich ist es am besten, chinesische Filter für diese Art von verstümmeltem Problem zu verwenden.
Der vierte Fall: URI -Methode übergeht verstümmelte Parameter
Problembeschreibung: Wenn Sie Parameter mithilfe eines Formulars übergeben, können Sie den Beitrag durchgeben oder erhalten. Das Formular ist nicht anwendbar. Sie können auch Parameter über eine Linkmethode übergeben. Diese Methode zum Übergeben von Parametern besteht im Wesentlichen als GET -Parameter. Die in dieser Methode übergebenen Parameter können auch verstümmelt erscheinen, wenn sie in Chinesisch erscheinen.
wie:
Kopieren Sie den Code wie folgt: <a href = "/webproject/display.jsp? Userername = zhang san & password = 123"> username und password </a> anzeigen </a>
Lösung: Das Wesentliche des Problems ist, dass die Standard-Codierungsmethode des von GET-Methode übergebenen Parameterinhalts ISO8859-1 und mit Request.Setcharactercoding ("UTF-8") das Problem nicht lösen kann. Um dieses Problem zu lösen, ändern Sie die Konfigurationsdatei des Tomcat -Servers. Ändern Sie Zeile 43 der Datei conf/server.xml im Tomcat -Verzeichnis:
Vor der Änderung:
<Connector port = "8080" Protocol = "HTTP/1.1" maxhreads = "150" ConnectionTimeout = "200000" redirectPort = "8443"/>
Geänderter Inhalt:
<Connector Port = "8080" Protocol = "Http/1.1" maxhreads = "150" ConnectionTimeout = "200000" redirectPort = "8443" URiencoding = "UTF-8"/>
Dies kann diese Art von verstümmelten Problemen lösen.
Die fünfte Situation:
Problembeschreibung: Wenn Sie einige Klassenbibliotheken oder Frameworks verwenden, muss die entsprechende Eigenschaftendatei geschrieben werden, um die Internationalisierung von Seiteninhalten zu erreichen. Der chinesische Inhalt in der Eigenschaftendatei wird auch verstümmelt, wenn sie angezeigt werden.
Lösung: Dieses verstümmelte Problem kann durch das native2ascii -Werkzeug in JDK gelöst werden. Verwenden Sie den folgenden Befehl:
Kopieren Sie den Code wie folgt: nativ2ascii -coding utf -8 display.properties display_zh_cn.properties
Der Grund für das verstümmelte Problem ist, dass der Java-Compiler nur Zeichendateien verarbeiten kann, die von Latin-1 oder Unicode codiert werden.
Das Obige dreht sich alles um diesen Artikel, ich hoffe, es wird für das Lernen aller hilfreich sein.