Heim >Backend-Entwicklung >PHP-Problem >Was tun, wenn die PHP-Echo-Get-Parameter verstümmelt sind?

Was tun, wenn die PHP-Echo-Get-Parameter verstümmelt sind?

藏色散人
藏色散人Original
2021-12-01 09:15:071916Durchsuche

Lösung für die verstümmelten Parameter von PHP Echo Get: 1. Verwenden Sie „iconv(“gb2312“, „utf-8“, $str);“ um die Kodierung zu konvertieren;

Was tun, wenn die PHP-Echo-Get-Parameter verstümmelt sind?

Die Betriebsumgebung dieses Artikels: Windows7-System, PHP7.4-Version, DELL G3-Computer

Was soll ich tun, wenn die PHP-Echo-Get-Parameter verstümmelt sind?

Der Grund und die Lösung dafür, dass PHP verstümmelte chinesische Parameter in GET empfängt

Vor ein paar Tagen habe ich mit Sphinx eine Suchfunktion geschrieben und den Sucheffekt mit einem Browser getestet, konnte aber nicht nach chinesischen Inhalten suchen. Ich habe Echo verwendet, um die von $ _GET erhaltenen Schlüsselwörter auszugeben, und festgestellt, dass die Seitencodierung in UTF-8 verstümmelt war. Beim Wechsel zu gb2312 war dies jedoch normal. Sphinx unterstützt jedoch nur die Suche nach chinesischen UTF-8-Zeichen, sodass ich das Problem des Empfangs chinesischer Parameter lösen musste.

Ich habe online gegoogelt und einen Artikel mit dem Titel „Ausführliche Studie zum Empfang chinesischer GET-Parameter mit verstümmelten Codes“ gefunden. In dem Artikel wurde erwähnt, dass dies auf ein Problem mit den Browsereinstellungen zurückzuführen ist, wenn Sie chinesische Parameter direkt in die Adressleiste eingeben. In der chinesischen Benutzeroberfläche empfangen Browser im Allgemeinen Parameter in GBK-Codierung. In Situationen wie diesen müssen wir die integrierte Transkodierungsfunktion von PHP verwenden, um Kodierungsprobleme zu lösen:

Option 1:

$str = iconv("gb2312","utf-8",$str);

Option 2:

mb_convert_encoding($str, "utf-8", "gb2312");

Wenn es durch Verwendung des Texteingabefelds unter der Seitenkodierung von erhalten wird Mit den chinesischen UTF-8-Parametern kodiert die Seite ihre Kodierung standardmäßig in die aktuelle Kodierung, sodass in diesem Fall die oben genannte Transkodierungsmethode nicht verwendet werden muss.

Wenn Sie einen Link mit chinesischen Parameterwerten auf der Seite generieren möchten, müssen Sie die chinesischen Zeichen mit urlencode() unter dem UTF-8-Codierungscode codieren und dann den Link generieren.

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas tun, wenn die PHP-Echo-Get-Parameter verstümmelt sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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