Heim > Java > JavaBase > Wenn die URL chinesische Parameter in Java übergibt, werden verstümmelte Zeichen angezeigt

Wenn die URL chinesische Parameter in Java übergibt, werden verstümmelte Zeichen angezeigt

王林
Freigeben: 2019-12-05 14:05:03
Original
2383 Leute haben es durchsucht

Wenn die URL chinesische Parameter in Java übergibt, werden verstümmelte Zeichen angezeigt

Grund:

Die URL wird mit ISO-8859-1 kodiert, wenn die HTTP-Anfrage übertragen wird, und der Server empfängt ihn. Standardmäßig wird der Bytestrom mithilfe der ISO-8859-1-Kodierung in einen Zeichenstrom dekodiert (was zu verstümmelten chinesischen Zeichen führt).

Methode 1:

Wir müssen zuerst ISO verwenden, um die Zeichenfolge von request.getParameter(“参数名”) zu erhalten -8859-1 kodiert es in einen Bytestrom, der dann mit UTF-8 in einen Zeichenstrom dekodiert wird.

String str = new String(request.getParameter("参数名").getBytes("iso-8859-1"), "utf-8");
Nach dem Login kopieren

Hiermit soll das verstümmelte Problem durch Transkodierung gelöst werden.

Online-Lernvideo-Tutorials teilen: Java-Video

Methode 2:

Wir können den URL-Codierungssatz (URIEncoding) auch über die Tomcat-Konfigurationsdatei festlegen, um die Codierung festzulegen. Diese Methode ist ebenfalls ein für alle Mal.

Ändern Sie die Datei server.xml im Tomcat/conf-Verzeichnis

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8444" 
useBodyEncodingForURI="true" URIEncoding="UTF-8"/>
Nach dem Login kopieren

Konzentrieren Sie sich auf die beiden Attribute userBodyEncodingForURI und URIEncoding.

useBodyEncodingForURI-Parameter

gibt an, ob der Parameter request.setCharacterEncoding verwendet werden soll, um die von der URL übermittelten Daten und die von übermittelten Daten neu zu kodieren GET-Methode im Formular. Standardmäßig ist dieser Parameter falsch.

URIEncoding-Parameter

Gibt die Kodierung für die einheitliche Neukodierung (Dekodierung) aller GET-Anfrageanforderungen an.

Der Unterschied zwischen URIEncoding und useBodyEncodingForURI

URIEncoding ist eine einheitliche Neukodierung aller GET-Anfragedaten.

useBodyEncodingForURI kodiert die Daten basierend auf dem request.setCharacterEncoding-Parameter der Seite neu, die auf die Anfrage antwortet. Verschiedene Seiten können unterschiedliche Neukodierungscodes haben.

Empfohlene verwandte Artikel und Tutorials: Java-Einstiegsprogramm

Das obige ist der detaillierte Inhalt vonWenn die URL chinesische Parameter in Java übergibt, werden verstümmelte Zeichen angezeigt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage