Heim  >  Artikel  >  Backend-Entwicklung  >  Sammlung von Lösungen für verstümmelte chinesische Zeichen, die in der PHP-URL-Adressleiste übertragen werden

Sammlung von Lösungen für verstümmelte chinesische Zeichen, die in der PHP-URL-Adressleiste übertragen werden

高洛峰
高洛峰Original
2017-01-12 15:02:241602Durchsuche

Das chinesische $_GET in der PHP-Adressleiste ist verstümmelt und die Verwendung von urlencode und urldecode wird ausführlich erklärt
URL-Kodierung
Syntax: string urlencode(string str);
Rückgabewert: string
Funktionstyp: Kodierungsverarbeitung
Zum Beispiel:

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

URL-Dekodierung
Stellen Sie die URL-kodierte Zeichenfolge wieder her.
Syntax: string urldecode(string str);
Rückgabewert: String
Funktionstyp: Kodierungsverarbeitung
Zum Beispiel:
Verarbeiten und zeigen Sie den zuvor übergebenen chinesischen Text an

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

Über das Problem chinesischer verstümmelter Zeichen, die mit der get-Methode in PHP aus der URL abgerufen werden

Verwenden Sie $gonghui = iconv("gb2312",UTF-8",$gonghui); einen anderen Methodencode
/**
* Multi-Byte-String-Kodierungskonvertierungsfunktion
*
* @param string str Die Zeichenfolge, die codiert und konvertiert werden muss
* @param string to_encoding gibt die Konvertierung in eine bestimmte Codierung an, z : gb2312, gbk, utf-8 usw.
* @param gemischt from_encoding gibt die gemischte Codierung der ursprünglichen Zeichenfolge an, z. B.: Geben Sie gleichzeitig die gemischte Codierung JIS, eucjp-win, sjis-win an
* @return string
string mb_convert_encoding ( string str, string to_encoding [, gemischt from_encoding] )
**/
mb_convert_encoding-Funktion ist PHPs interne Multibyte-String-Kodierungskonvertierungsfunktion, die bei Bedarf fast alle Kodierungen unterstützen kann. PHP >= 4.0.6, 5 Versionen unterstützt.

Reg.php?gh=XX direkt abrufen;

// Union-Anmeldeparameter

$gonghui = $_GET['gh'];

Das erhaltene $gonghui wird mit GB2312 codiert und an die UTF-8-Webseite ausgegeben, um verstümmelte Zeichen anzuzeigen.

wurde in

geändert // Union-Anmeldeparameter
$gonghui = $_GET['gh' ];
$gonghui = mb_convert_encoding($gonghui, "UTF-8", "gb2312");

Es wird normal angezeigt

Die gesamte Seite konvertieren

Diese Methode funktioniert in allen Codierungsumgebungen. 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). Eine solche 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:

mb_internal_encoding("gb2312");  // 这里的gb2312是你网站原来的编码     
mb_http_output("HTML-ENTITIES");     
ob_start(&#39;mb_output_handler&#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ü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:
//Methode 1 urldecode
$url = 'aaa.php?region='.urldecode("Sichuan Province");
< ; a href="5616aa3af0b068e40ca2d7d2d5907ac5">aaa 5db79b134e9f6b82c0b36e0489ee08ed

//Methode 2 base64_encode

bbeb9f73655913ef663c64bde85052daaaa 5db79b134e9f6b82c0b36e0489ee08ed'; 🎜>?>

Verwenden Sie base64_decode, um eine andere Seite zu dekodieren

base64_decode($region);

//Methode 3 sorgt dafür, dass der Server Chinesisch unterstützt

[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 -8"
lc_all=
[root@dhcp ~]#

Weitere Lösungen für verstümmelte chinesische Zeichen in der PHP-URL-Adressleiste finden Sie auf der chinesischen PHP-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