Heim > Backend-Entwicklung > PHP-Problem > Zusammenfassung der Lösungen für verstümmelte chinesische PHP-URL-Zeichen

Zusammenfassung der Lösungen für verstümmelte chinesische PHP-URL-Zeichen

藏色散人
Freigeben: 2023-03-02 06:42:01
Original
2883 Leute haben es durchsucht

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“.

Zusammenfassung der Lösungen für verstümmelte chinesische PHP-URL-Zeichen

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>";
?>
Nach dem Login kopieren

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[&#39;name&#39;]);//你可能不用解码都可以,因为浏览器会自动帮你解码
echo $DecodeStr;
?>
Nach dem Login kopieren

Ü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] )
**/
Nach dem Login kopieren

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[&#39;gh&#39;];
Nach dem Login kopieren

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[&#39;gh&#39;];
 $gonghui = mb_convert_encoding($gonghui, "UTF-8", "gb2312");
Nach dem Login kopieren

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(&#39;mb_output_handler&#39;);
Nach dem Login kopieren

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 = &#39;aaa.php?region=&#39;.urldecode("四川省");
<a href="<?php echo $url;?>">aaa </a>
//方法二base64_encode
<?
$test="四川省";
$test1=base64_encode($test);
echo &#39;<a href="www.jb51.net?region=$test1">aaa </a>&#39;;
?>
Nach dem Login kopieren

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 ~]#
Nach dem Login kopieren

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!

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