Heim Backend-Entwicklung PHP-Problem So lösen Sie das Problem mit verstümmelten PHP-Anfragen

So lösen Sie das Problem mit verstümmelten PHP-Anfragen

Oct 20, 2020 am 09:39 AM
request

Lösung für verstümmelte PHP-Anfragen: Öffnen Sie zuerst die server.xml von Tomcat und legen Sie dann das Attribut des Elements „URIEncoding="UTF-8" fest.

So lösen Sie das Problem mit verstümmelten PHP-Anfragen

Empfohlen: „PHP-Video-Tutorial

Anfrage, Antwort: Probleme und Lösungen mit chinesischem verstümmeltem Code

Anfrage mit verstümmeltem Code bezieht sich auf: Die vom Browser an den Server gesendeten Anforderungsparameter enthalten chinesische Zeichen. Der vom Server erhaltene Wert des Anforderungsparameters ist verstümmelt.

Antwort verstümmelt bezieht sich auf: Die vom Server an den Browser gesendeten Daten enthalten verstümmelte Zeichen und der Browser zeigt verstümmelte Zeichen an. Unabhängig davon, ob die Anforderung verstümmelt ist Oder die Antwort verstümmelt ist, was tatsächlich durch die inkonsistenten Codierungsformate verursacht wird, die vom Client (Browser) und dem Server verwendet werden. Nehmen Sie als Beispiel die verstümmelte Anfrage: Der Browser sendet eine Anfrage an den Server. Da die Kommunikation zwischen dem Browser und dem Server im Wesentlichen ein Socket-Stream ist, müssen die Anfrageparameter (Zeichen) zunächst in Bytes umgewandelt werden, was dem Codierungsprozess entspricht . Der Server empfängt die Anforderungsparameter, wird dekodiert (Bytes in Zeichen umgewandelt) und dann in das Anforderungsobjekt gekapselt. Wenn die Codierung des Clients nicht mit der Decodierung des Servers übereinstimmt, wird der durch die Anforderung erhaltene Wert des Anforderungsparameters verstümmelt.

Lösung:

1. Antwort verstümmelte Zeichen

Die vom Server an den Browser gesendeten Daten werden standardmäßig gemäß ISO-8859-1 codiert. Nachdem der Browser die Daten empfangen hat, werden sie entsprechend decodiert und angezeigt Wenn der Standard-Dekodierungszeichensatz des Browsers nicht ISO-8859-1 ist, werden verstümmelte Zeichen angezeigt.

Bei verstümmelten Antworten müssen Sie lediglich einen Codierungszeichensatz auf der Serverseite angeben und dann den Browser anweisen, gemäß diesem Zeichensatz zu decodieren. Es gibt drei Möglichkeiten:

1. A. Legen Sie die serverseitige Codierung fest

response.setCharacterEncoding("utf-8");

Die Standardeinstellung ist ISO-8859-1; diese Methode muss vor Response.getWriter festgelegt werden ()

B. Benachrichtigen Sie den Browser über das vom Server gesendete Datenformat.       Response.setHeader("contentType", "text/html; charset=utf-8");

Das vom Server gesendete Datenformat

Response.setContentType("text/html; charset=utf-8");

entspricht Response.setHeader("contentType", "text/html; charset=utf-8" ); Es wird tatsächlich Response.setCharacterEncoding( „utf-8“) überschreiben. Während der Entwicklung müssen Sie nur

B festlegen ");

3. A. Stellen Sie die serverseitige Kodierung ein

response.setCharacterEncoding("utf-8");

B. Der Browser verwendet utf-8 für die Dekodierung

       

Zusammenfassung: Einstellungen:

A. Stellen Sie die serverseitige Codierung ein

response.setCharacterEncoding("utf-8");

B Benachrichtigen Sie den Browser über das vom Server gesendete Datenformat

response.setContentType("text/html;charset=utf -8");

C. Der Browser verwendet utf-8 zum Dekodieren

​​​​​

So habe ich es für alle Fälle eingerichtet;

2. Die Anfrage ist verstümmelt.

Da Es gibt drei Möglichkeiten, über den Browser darauf zuzugreifen: Geben Sie direkt die URL in die Adressleiste ein, um darauf zuzugreifen, klicken Sie auf den Hyperlink auf der Seite, um darauf zuzugreifen, und senden Sie das Formular ab, um darauf zuzugreifen. Der Browser der ersten Zugriffsmethode codiert die Parameter standardmäßig gemäß UTF-8, und die Browser der beiden letztgenannten Zugriffsmethoden codieren die Parameter gemäß der Anzeigecodierung der aktuellen Seite. Daher müssen Sie für die Anforderung verstümmelter Zeichen nur das entsprechende Decodierungsformat auf der Serverseite festlegen. Aufgrund unterschiedlicher Zugriffsmethoden verfügen Browser auch über unterschiedliche Kodierungsformate für Parameter. Um die Verarbeitung zu erleichtern, muss der Zugriff über Hyperlinks und Formulare ebenfalls im UTF-8-Format erfolgen. Das heißt, die Kodierung zur Anzeige der aktuellen Seite muss ebenfalls UTF-8 verwenden. 8, also durchsuchen Der Prozessor verwendet einheitlich UTF-8 zum Codieren von Parametern.

A. Post-Methode

Die Post-Methode gehört zur Formularübermittlung und die Parameter sind im Anforderungstext vorhanden.

request.setCharacterEncoding("utf-8")

B get-Methode

Die von der get-Methode übermittelten Parameter folgen der URL in der Anforderungszeile und der Server dekodiert sie gemäß der Standard-ISO-8859-1 . Diesmal ist es gelöst. Es gibt zwei Möglichkeiten, verstümmelte Zeichen zu verursachen:

Methode 1: Ändern Sie die Standardcodierung der URI-Parameter auf der Serverseite.

Legen Sie in der server.xml von Tomcat das Attribut URIEncoding="UTF-8" fest. . (Dieses Attribut ist standardmäßig nicht festgelegt)

Zum Beispiel: Hinweis: 1. Legen Sie das Attribut useBodyEncodingForURI="true" des Elements fest, was bedeutet, dass der Anforderungstext und die URL dasselbe Codierungsformat verwenden. Durch Festlegen dieser beiden Attribute können Sie sowohl den verstümmelten Code in der Get-Methode als auch den verstümmelten Code in der Post-Methode lösen. 2. Geben Sie an, dass der Server GET und POST gemäß UTF-8 dekodiert, indem Sie den Server ändern.

Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem mit verstümmelten PHP-Anfragen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was bedeutet PHP-Anfrage? Was bedeutet PHP-Anfrage? Jul 07, 2021 pm 01:49 PM

Die chinesische Bedeutung von request ist „request“. Es ist eine globale Variable in PHP und ein Array, das „$_POST“, „$_GET“ und „$_COOKIE“ enthält. Die Variable „$_REQUEST“ kann per POST oder GET übermittelte Daten und COOKIE-Informationen abrufen.

So verwenden Sie die Funktion urllib.request.urlopen() zum Senden einer GET-Anfrage in Python 3.x So verwenden Sie die Funktion urllib.request.urlopen() zum Senden einer GET-Anfrage in Python 3.x Jul 30, 2023 am 11:28 AM

So verwenden Sie die Funktion urllib.request.urlopen() in Python3.x, um eine GET-Anfrage zu senden. Bei der Netzwerkprogrammierung müssen wir häufig Daten von einem Remote-Server erhalten, indem wir eine HTTP-Anfrage senden. In Python können wir die Funktion urllib.request.urlopen() im Modul urllib verwenden, um eine HTTP-Anfrage zu senden und die vom Server zurückgegebene Antwort zu erhalten. In diesem Artikel wird die Verwendung vorgestellt

Was ist das Request-Objekt in PHP? Was ist das Request-Objekt in PHP? Feb 27, 2024 pm 09:06 PM

Das Request-Objekt in PHP ist ein Objekt, das zur Verarbeitung von HTTP-Anfragen verwendet wird, die vom Client an den Server gesendet werden. Über das Request-Objekt können wir die Anforderungsinformationen des Clients abrufen, z. B. die Anforderungsmethode, die Anforderungsheaderinformationen, die Anforderungsparameter usw., um die Anforderung zu verarbeiten und zu beantworten. In PHP können Sie globale Variablen wie $_REQUEST, $_GET, $_POST usw. verwenden, um angeforderte Informationen zu erhalten, aber diese Variablen sind keine Objekte, sondern Arrays. Um Anfrageinformationen flexibler und bequemer bearbeiten zu können, können Sie dies tun

So kapseln Sie den Vue3 Axios-Interceptor in eine Anforderungsdatei So kapseln Sie den Vue3 Axios-Interceptor in eine Anforderungsdatei May 19, 2023 am 11:49 AM

1. Erstellen Sie eine neue Datei namens request.js und importieren Sie Axios: importaxiosfrom'axios'; 2. Erstellen Sie eine Funktion namens request und exportieren Sie sie: Dadurch wird eine Funktion namens request erstellt und exportiert. Richten Sie eine neue Axios-Instanz mit einer Basis-URL ein . Um Timeout-Einstellungen in einer umschlossenen Axios-Instanz hinzuzufügen, können Sie beim Erstellen der Axios-Instanz die Timeout-Option übergeben. exportconstrequest=axios.create({baseURL:'https://example.

Die Rolle und Bedeutung von Request in PHP Die Rolle und Bedeutung von Request in PHP Feb 27, 2024 pm 12:54 PM

Die Rolle und Bedeutung von Request in PHP In der PHP-Programmierung ist Request ein Mechanismus zum Senden von Anfragen an den Webserver. Er spielt eine wichtige Rolle bei der Webentwicklung. Request wird hauptsächlich verwendet, um vom Client gesendete Daten abzurufen, z. B. Formularübermittlung, GET- oder POST-Anfrage usw. Über Request können die vom Benutzer eingegebenen Daten abgerufen und die Daten verarbeitet und beantwortet werden. In diesem Artikel werden die Rolle und Bedeutung von Request in PHP vorgestellt und spezifische Codebeispiele gegeben.

Was ist eine Anfrage in PHP? Was ist eine Anfrage in PHP? Jun 01, 2023 am 10:12 AM

Request in PHP ist eine super globale Variable in PHP. Sie wird zum Sammeln von Daten verwendet, die von HTML-Formularen und Parametern in URLs übermittelt werden. Sie kann Daten aus GET- und POST-Anfragen abrufen ein assoziatives Array, wobei die Schlüssel die Namen der Formularfelder und die Werte die Werte der Formularfelder sind. Bei Verwendung der Variablen $_request sollten vom Benutzer eingegebene Daten immer validiert und gefiltert werden, um Sicherheitsprobleme zu vermeiden.

So verwenden Sie den Kontext, um die Überprüfung von Anforderungsparametern in Go zu implementieren So verwenden Sie den Kontext, um die Überprüfung von Anforderungsparametern in Go zu implementieren Jul 22, 2023 am 08:23 AM

So verwenden Sie den Kontext, um die Überprüfung von Anforderungsparametern in Go zu implementieren. Einführung: Während des Back-End-Entwicklungsprozesses müssen wir häufig die Anforderungsparameter überprüfen, um die Rechtmäßigkeit der Parameter sicherzustellen. Die Go-Sprache stellt das Kontextpaket zur Verarbeitung von Anforderungskontextinformationen bereit. Ihr elegantes Design und ihre einfache Verwendung machen sie zu einem häufig verwendeten Werkzeug. In diesem Artikel wird erläutert, wie das Kontextpaket von Go zum Implementieren der Überprüfung von Anforderungsparametern verwendet wird, und es werden entsprechende Codebeispiele angegeben. Einführung in das Kontextpaket In Go wird das Kontextpaket zur Bereitstellung verwendet

So verwenden Sie das Modul urllib.request zum Senden von HTTP-Anfragen in Python 3.x So verwenden Sie das Modul urllib.request zum Senden von HTTP-Anfragen in Python 3.x Jul 30, 2023 am 11:21 AM

So verwenden Sie das Modul urllib.request zum Senden von HTTP-Anfragen in Python3.x. Im eigentlichen Entwicklungsprozess müssen wir häufig HTTP-Anfragen senden, um mit dem Server zu interagieren. Python stellt das Modul urllib.request bereit, eines der Module in der Python-Standardbibliothek zur Verarbeitung von URL-Anfragen. In diesem Artikel erfahren Sie, wie Sie HTTP-Anfragen mit dem Modul urllib.request senden

See all articles