Aktueller Standort: Startseite> Neueste Artikel> So lösen Sie das Problem der in PHP -URL -Parametern verstümmelten Chinesen

So lösen Sie das Problem der in PHP -URL -Parametern verstümmelten Chinesen

gitbox 2025-06-28

1. Problemdefinition

Bei der PHP -Programmierung ist es häufig notwendig, chinesische Zeichen in URL -Parametern zu übergeben. Da jedoch chinesische Charaktere mehr Bytes als englische Charaktere aufnehmen, treten während des Vorbeigehens verstümmelte Probleme auf. Um dieses Problem zu lösen, müssen chinesische Zeichen spezifisch codiert werden.

2. Problemlösung

URL -Codierung und Dekodierung

URL -Codierung kann Sonderzeichen in der URL in ein Format umwandeln, das der URL -Spezifikation entspricht. In PHP können Sie die Zeichenfolge mit der Funktion urlencode () codieren, um sicherzustellen, dass alle nicht-alphanumerischen Zeichen durch das %xx-Formular ersetzt werden, wobei XX die hexadezimale Darstellung des ASCII-Codes der Zeichen ist.

Zum Beispiel können Sie den folgenden Code verwenden, um die Zeichenfolge "Chinese" zu verwenden:

 $encoded_str = urlencode('chinesisch');
 echo $encoded_str; // %E4%B8%AD%E6%96%87

Der obige Code wandelt "Chinesisch" in "%e4%b8%ad%E6%96%87" um. Wenn Sie die codierte Zeichenfolge dekodieren müssen, können Sie die Funktion urldecode () verwenden. Zum Beispiel:

 $decoded_str = urldecode('%E4%B8%AD%E6%96%87');
 echo $decoded_str; // chinesisch

Zusätzlich kann die Funktion http_build_query () ein Array in einen URL -Parameter umwandeln. Wenn es mehrere Schlüsselwertpaare gibt, können Sie sie zu einer vollständigen URL kombinieren:

 $data = array('name' => 'chinesisch', 'age' => 18);
$query_string = http_build_query($data);
 echo $query_string; // name=%E4%B8%AD%E6%96%87&age=18

Ändern Sie die Standardcodierung von PHP

Wenn Ihre PHP -Anwendung häufig chinesische Zeichen verwendet, können Sie verstümmelten Code vermeiden, indem Sie die Standardcodierung von PHP ändern. Verwenden Sie die Funktion Header () , um die Zeichencodierung am Header der PHP -Datei festzulegen, zum Beispiel:

 <span class="fun">Header (&#39;Inhaltstyp: text/html; charset = utf-8&#39;);</span>

Nach dieser Einstellung werden alle Ausgänge in UTF-8 codiert, und selbst wenn chinesische Zeichen in URL-Parametern übergeben werden, gibt es keinen verstümmelten Code.

Stellen Sie sicher, dass die Codierungseinstellungen in der Datei php.ini korrekt sind

Darüber hinaus ist es auch erforderlich, sicherzustellen, dass die folgenden drei Parameter in der Php.ini -Datei korrekt konfiguriert werden:

 default_charset = 'UTF-8'
 mbstring.internal_encoding = 'UTF-8'
 mbstring.http_input = 'UTF-8'

Diese Parameter werden verwendet, um die Standardcodierung, die interne Codierung bzw. die HTTP -Eingabecodierung festzulegen. Die korrekte Konfiguration kann das Problem von verstümmelten Chinesen effektiv vermeiden.

3. Zusammenfassung

Beim Programmieren in PHP ist es wichtig, chinesische Zeichen in URL -Parametern zu verarbeiten. Durch URL -Codierung und -Deladierung, Änderung der PHP -Standardcodierung und korrektes Festlegen der Php.ini -Datei kann das Problem des verstümmelten Codes effektiv vermieden werden. Durch das Beherrschen dieser Methoden können Sie sicherstellen, dass PHP -Anwendungen URL -Parameter mit Chinesen korrekt verarbeiten können.