Heim  >  Artikel  >  Backend-Entwicklung  >  So lösen Sie das Problem verstümmelter chinesischer Parameter in URLs in PHP

So lösen Sie das Problem verstümmelter chinesischer Parameter in URLs in PHP

藏色散人
藏色散人Original
2022-01-04 10:35:513598Durchsuche

PHPs Methode zur Lösung des Problems der verstümmelten chinesischen Parameterübertragung in URLs: 1. Verwenden Sie die Funktionen urlencode und urldecode zum Transkodieren; 2. Transkodieren Sie über „iconv(“gb2312“, „UTF-8“, $gonghui);“.

So lösen Sie das Problem verstümmelter chinesischer Parameter in URLs in PHP

Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP Version 7.1, Dell G3-Computer.

Wie löst PHP das Problem verstümmelter chinesischer Parameter in URLs?

Eine Sammlung von Lösungen für die chinesischen verstümmelten Zeichen, die in der PHP-Adressleiste übertragen werden

Das chinesische $_GET in der PHP-Adressleiste ist verstümmelt, ausführliche Erklärung der Verwendung von URL-Code und URL-Decode
URL-Codierung
Syntax: Zeichenfolge urlencode(string str);
Rückgabewert: String
Funktionstyp: Codierungsverarbeitung
Zum Beispiel:

Der Code lautet wie folgt:

<?php
$ChineseName="我的名字,是中文的哦";
$EncodeStr=urlencode($ChineseName);
echo "<a href=/cgi/personal.cgi?name=$EncodeStr>我的名字</a>";
?>

URL-Dekodierung
URL-codierte Zeichenfolge wiederherstellen.
Syntax: string urldecode(string str);
Rückgabewert: String
Funktionstyp: Codierungsverarbeitung
Zum Beispiel:
Verarbeiten und zeigen Sie das vorangegangene Chinesisch an

Der Code lautet wie folgt:

<?php
$DecodeStr=urldecode($_GET[&#39;name&#39;]);//你可能不用解码都可以,因为浏览器会自动帮你解码
echo $DecodeStr;
?>

Über die Verwendung von Get-Methode in PHP Das Problem chinesischer verstümmelter Zeichen, die aus der URL erhalten werden Multibyte-String-Kodierung Die Konvertierungsfunktion kann bei Bedarf verwendet werden und unterstützt fast alle Kodierungen. PHP >= 4.0.6, 5 Versionen unterstützt.

Rufen Sie reg.php?gh=XX direkt ab;

/**
* 多字节字符串编码转换函数
*
* @param string str 需要进行编码转换的字符串
* @param string to_encoding 指定转换为某种编码,如:gb2312、gbk、utf-8等
* @param mixed from_encoding 混合指定原来字串的编码,如:同时指定 JIS, eucjp-win, sjis-win 混合编码
* @return string
string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] )
**/

Das erhaltene $gonghui ist gb2312-codiert und wird auf der UTF-8-Webseite ausgegeben, auf der verstümmelte Zeichen angezeigt werden

Passen Sie die gesamte Seitenkonvertierung an

Diese Methode ist für alle Codierungsumgebungen geeignet. Auf diese Weise wird der andere Zeichensatz als die ersten 128 Zeichen (Anzeigezeichen) durch NCR dargestellt (Numerische Zeichenreferenzen wie „chinesische Zeichen“ werden in die Form „汉字“ umgewandelt). Diese Codierung ist Die Seite kann in jeder Codierungsumgebung normal angezeigt werden.

Fügen Sie die folgenden drei Codezeilen zum Kopf der PHP-Datei hinzu:

Der Code lautet wie folgt:

 //工会登入参
$gonghui = $_GET[&#39;gh&#39;];

Die Verwendung der Funktion mb_convert_encoding erfordert die Aktivierung der mbstring-Erweiterung (Multibyte-String) von PHP.

Wenn die mbstring-Erweiterung von PHP nicht aktiviert ist, müssen Sie die folgenden Einstellungen vornehmen, damit PHP die Erweiterung unterstützt.

1. Windows-Serverumgebung

Bearbeiten Sie die Datei php.ini, entfernen Sie das ; vor der Erweiterung=php_mbstring.dll und starten Sie den Webserver neu.

2. Linux-Serverumgebung

Fügen Sie beim Kompilieren und Konfigurieren den Kompilierungsparameter --enable-mbstring=cn hinzu und kompilieren und installieren Sie dann PHP.

Die dritte Referenzmethode von anderen Internetnutzern:

 //工会登入参数
 $gonghui = $_GET[&#39;gh&#39;];
 $gonghui = mb_convert_encoding($gonghui, "UTF-8", "gb2312");

Eine andere Seite verwendet base64_decode, um

mb_internal_encoding("gb2312");  // 这里的gb2312是你网站原来的编码     
mb_http_output("HTML-ENTITIES");     
ob_start(&#39;mb_output_handler&#39;);

Empfohlenes Lernen: „

PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem verstümmelter chinesischer Parameter in URLs in PHP. 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
Vorheriger Artikel:Hat PHP Reflexion?Nächster Artikel:Hat PHP Reflexion?