HINWEIS: Alle in einem Computer gespeicherten Textinformationen speichern die Zeichen, die wir kennen (chinesische oder englische Zeichen) in einer bestimmten Codierungstabelle (0, 1, 0, 1). Der binäre Prozess von Charakteren zum Computerspeicher ist codiert, und der Prozess von Binär- bis Text wird als Dekodierung bezeichnet. Es gibt viele verschiedene Codierungstabellen für die Charaktercodierung. Wenn also das Codierungsformat und das Dekodierungsformat nicht dieselbe Code -Tabelle sind, wird der verstümmelte Code angezeigt. Um verstümmelten Code zu vermeiden, müssen Sie beim Speichern und Lesen dieselbe Code -Tabelle verwenden.
In der Java -Webprogrammierung gibt es oft verstümmte Codes. Lassen Sie mich nun ausführlich erklären, wie ich sie festlegen kann, um verstümmelte Codes zu vermeiden.
1 Webseitencodierung
Beim Schreiben einer Webseite müssen Sie das Codierungsformat der Webseite angeben und <meta http-äquiv = "content-type" content = "text/html; charSet = utf-8"> verwenden, um sie anzugeben. Zu diesem Zeitpunkt werden die Daten im angegebenen Codierungsformat gespeichert oder gesendet, wenn der Browser die Anforderung liest oder sendet. Hier ist es in Form von UTF-8.
Zum Beispiel Code -Snippet:
<form action = "/pro1/bb" methode = "post"> userername: <Eingabe type = "text" name = "username"> <br> Geschlecht: männlich <Eingabe type = "radio" name = "Geschlecht" value = "männlich"> weiblicher weiblicher <eingabetyps type="checkbox" name="color" value="green"> Blue<input type="checkbox" name="color" value="blue"> <br>Countries from <select name="country"> <option value="China">China</option> <option value="US">US</option> <option value="Japan">Japan</option> </select> <br> <input type="submit" value="submit"> <input type="reset" Value = "Reset"> </form>
2 Backend Read Request Data
Im Servlet des Java-Webs müssen die gesendeten Binärdaten gemäß der entsprechenden Code-Tabelle dekodiert werden, um die entsprechende menschlich-lesbare Zeichenfolge zu erhalten, um die angeforderten Daten zu erhalten. In diesem Beispiel wird die Post -Methode verwendet. Bei der Verarbeitung der Postanforderung müssen Sie das Codierungsformat festlegen, bevor die chinesischen Anforderungsparameter erhalten werden, ansonsten werden verstümmelter Code stattfinden. Da der Server die ISO-8859-1 Codierungstabelle standardmäßig für die Dekodierung verwendet.
Wenn Sie in der Ausgabe chinesische Zeichen ausgeben möchten, müssen Sie natürlich auch eine einheitliche Zeichenkodierung verwenden. Hier ist UTF-8, der Code ist wie folgt
public void dopost (httpServletRequest request, httpServletResponse-Antwort) löst ServletException aus, iOException {Request.Setcharactercoding ("UTF-8"); Antwort.SetContentType ("text/html; charSet = utf-8"); Printwriter out = response.getWriter (); String username = request.getParameter ("Benutzername"); String Gender = Request.GetParameter ("Geschlecht"); String [] Colors = Request.GetParamTervalues ("Farbe"); String Country = Request.GetParameter ("Country"); out.println ("<! docType html>"); out.println ("<Head> <title> Test Servlet </title> </head>"); out.println ("<body>"); out.print ("<h1> Folgendes ist Ihre Eingabe </h1>"); out.print ("<p>"); out.print ("Dein Benutzername:"+Benutzername+"<br>"); out.print ("Ihr Geschlecht:"+Geschlecht+"<br>"); out.print ("Ihre Lieblingsfarbe:"); für (String Cr: Farben) {out.print (cr+""); } out.print ("<br>"); out.print ("Ihr Land:"+Land+"<br>"); out.print ("</p>"); out.println ("</body>"); out.println ("</html>"); }Hinweis: Request.Setcharactercoding ("UTF-8"); Hier gilt nur für den Inhalt der anforderenden Entität. Die Postanforderungsparameter werden in der Anforderungsentität gespeichert, und die Anforderungsparameter der GET -Methode werden nach der URL platziert und beginnen mit einem Fragezeichen und verbinden mehrere Parameter. Wenn Sie also die Parameter der GET -Methode abrufen möchten, müssen Sie manuelle Decodierung oder Filter verwenden.
Manuelle Dekodierungsmethode, um der Einfachheit nur zu den Geschlechtsdecodes und im tatsächlichen Gebrauch, muss jeder Parameter dekodiert werden: String-Geschlecht = neuer String (req.getParameter ("Geschlecht"). GetBytes ("ISO-8859-1"), "UTF-8");
Zu diesem Zeitpunkt kann das Phänomen chinesischer Charaktere auf der Web- und Serverseite perfekt gelöst werden. Denken Sie daran, eine Sache: Einerseits verstümmelt, weil die Codierung und Dekodierung verschiedene Codierungstische verwenden. Sie müssen dieselbe Codierungstabelle verwenden, um das Problem zu lösen.
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.