Heim >Backend-Entwicklung >PHP-Problem >Zusammenfassung der Lösungen für verstümmelte chinesische PHP-URL-Zeichen
Lösungen für chinesische verstümmelte PHP-URLs: 1. Verwenden Sie die Funktion „urlencode“, um das URL-Kodierungsproblem zu lösen. Die Syntax lautet „string urlencode(string str);“ 2. Stellen Sie die URL-codierte Zeichenfolge wieder her Funktion „urldecode“.
Das chinesische $_GET in der PHP-Adressleiste ist verstümmelt und die Verwendung von URL-Code und URL-Decode wird ausführlich erklärt
URL-Kodierung
Syntax: string urlencode(string str);
Rückgabewert: String
Funktionstyp: Kodierungsverarbeitung
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: Kodierungsverarbeitung
Zum Beispiel:
Verarbeiten und zeigen Sie den vorangegangenen chinesischen Text an
Der Code lautet wie folgt:
<?php $DecodeStr=urldecode($_GET['name']);//你可能不用解码都可以,因为浏览器会自动帮你解码 echo $DecodeStr; ?>
Über das Problem chinesischer verstümmelter Zeichen, die mithilfe der get-Methode in PHP aus der URL abgerufen werden
Verwenden Sie $gonghui = iconv("gb2312",UTF-8",$gonghui); einen anderen Methodencode
/** * 多字节字符串编码转换函数 * * @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] ) **/
mb_convert_encoding
, um PHP intern zu konvertieren Multibyte-String-Kodierungsfunktionen können überall dort eingesetzt werden, wo sie benötigt werden, und unterstützen fast alle Kodierungen.
PHP >= 4.0.6, 5 Versionen unterstützt.
Reg.php?gh=XX direkt abrufen;
//工会登入参 $gonghui = $_GET['gh'];
Das erhaltene $gonghui ist gb2312-codiert und wird auf der UTF-8-Webseite ausgegeben, auf der verstümmelte Zeichen angezeigt werden
geändert in
//工会登入参数 $gonghui = $_GET['gh']; $gonghui = mb_convert_encoding($gonghui, "UTF-8", "gb2312");
Die Anzeige wird normal sein
Die gesamte Seite konvertieren
Diese Methode ist auf alle Codierungsumgebungen anwendbar. Auf diese Weise werden alle Zeichensätze außer den ersten 128 Zeichen (Anzeigezeichen) durch NCR dargestellt (Numerische Zeichenreferenzen wie „chinesische Zeichen“ werden in „chinesische Zeichen“ umgewandelt). Diese Codierung kann auf der Seite verwendet werden in jeder Codierungsumgebung normal angezeigt.
Fügen Sie die folgenden drei Codezeilen zum Kopf der PHP-Datei hinzu:
Der Code lautet wie folgt:
mb_internal_encoding("gb2312"); // 这里的gb2312是你网站原来的编码 mb_http_output("HTML-ENTITIES"); ob_start('mb_output_handler');
Die Verwendung der Funktion mb_convert_encoding erfordert die Aktivierung von PHPs mbstring (multi -Byte-Zeichenfolge) Erweiterung .
Wenn die mbstring-Erweiterung von PHP nicht aktiviert ist, müssen Sie die folgenden Einstellungen vornehmen, damit PHP die Erweiterung unterstützen kann.
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 der Konfiguration den Kompilierungsparameter --enable-mbstring=cn hinzu und kompilieren und installieren Sie dann PHP.
Die dritte Referenzmethode von anderen Internetnutzern:
//方法一 urldecode $url = 'aaa.php?region='.urldecode("四川省"); <a href="<?php echo $url;?>">aaa </a> //方法二base64_encode <? $test="四川省"; $test1=base64_encode($test); echo '<a href="www.jb51.net?region=$test1">aaa </a>'; ?>
Eine andere Seite verwendet base64_decode, um
base64_decode($region); //方法三让服务器支持中文 [root@dhcp ~]# locale lang=zh_cn.utf-8 lc_ctype="zh_cn.utf-8" lc_numeric="zh_cn.utf-8" lc_time=c lc_collate=c lc_monetary="zh_cn.utf-8" lc_messages="zh_cn.utf-8" lc_paper="zh_cn.utf-8" lc_name="zh_cn.utf-8" lc_address="zh_cn.utf-8" lc_telephone="zh_cn.utf-8" lc_measurement="zh_cn.utf-8" lc_identification="zh_cn.utf-8" lc_all= [root@dhcp ~]#
Weitere Informationen zu diesem Thema finden Sie auf der PHP Chinese-Website !
Das obige ist der detaillierte Inhalt vonZusammenfassung der Lösungen für verstümmelte chinesische PHP-URL-Zeichen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!