Aktueller Standort: Startseite> Neueste Artikel> Wie man das Problem der chinesischen Codierung von JSON -chinesischen Codierung in PHP löst

Wie man das Problem der chinesischen Codierung von JSON -chinesischen Codierung in PHP löst

gitbox 2025-07-26

Was ist JSON Coding in PHP

JSON ist die Abkürzung der JavaScript -Objektnotation (JavaScript -Objektnotation), ein leichtes Datenaustauschformat. In PHP können Entwickler die integrierte Funktion JSON_Encode () verwenden, um Arrays oder Objekte für die Dateninteraktion zwischen Vorder- und Rückseite oder zwischen verschiedenen Systemen in das JSON-Format umzuwandeln. Seit der PHP 5.2.0 -Version wird JSON_Encode () in der Webentwicklung häufig verwendet.

Das Problem des durch JSON -chinesischen Codierung in PHP verursachten Verschlachtungscode

Wenn die Funktion json_encode () ein Array oder ein Objekt verarbeitet, das Chinesen enthält, wandelt das Standardverhalten chinesische Zeichen in Unicode -Codierung um. Zum Beispiel:

 
$arr = array('name' => 'Zhang San', 'age' => 18, 'gender' => 'männlich');
echo json_encode($arr);
// Ausgangsergebnis:{"name":"\u5f20\u4e09","age":18,"gender":"\u7537"}

Sie können sehen, dass Chinesen in die Unicode -Codierung entkommen werden, was in einigen Fällen ein verstümmelter Code -Display oder eine unbequeme Lektüre verursacht.

Lösung 1: Verwenden Sie den Parameter json_unescaped_unicode

Ab PHP 5.4.0 unterstützt die Funktion json_encode () die Option json_unescaped_unicode . Verwenden Sie diese Option, um zu verhindern, dass die Chinesen entkommen werden, wodurch chinesische Zeichen als IS ausgegeben werden.

 
$arr = array('name' => 'Zhang San', 'age' => 18, 'gender' => 'männlich');
echo json_encode($arr, JSON_UNESCAPED_UNICODE);
// Ausgangsergebnis:{"name":"Zhang San","age":18,"gender":"männlich"}

Diese Methode ist die einfachste und empfohlene Weise, aber es ist erforderlich, um sicherzustellen, dass die PHP -Version des Servers 5.4 und höher ist.

Lösung 2: Manuelle Flucht und dekodieren chinesische Zeichen

Für Versionen unten PHP 5.4 können Sie chinesische Zeichen manuell entkommen und dekodieren über die Methoden urlencode () und urdecode (), um verstümmelten Code zu vermeiden:

 
$arr = array('name' => 'Zhang San', 'age' => 18, 'gender' => 'männlich');
$new_arr = array();
foreach($arr as $key => $value) {
    $new_arr[$key] = urlencode($value);
}
echo urldecode(json_encode($new_arr));
// Ausgangsergebnis:{"name":"Zhang San","age":18,"gender":"männlich"}

Diese Methode ist mit alten Versionen von PHP kompatibel. Obwohl es etwas umständlich ist, kann es effektiv vermeiden, dass das Problem der Flucht Chinesen ist.

Zusammenfassen

Um die chinesische Anzeige besser zu unterstützen, können Entwickler die entsprechende Lösung basierend auf der aktuellen PHP -Version auswählen. Wenn die Version sie unterstützt, wird mit json_unescaped_unicode bevorzugt. Wenn nicht, kann der gleiche Effekt durch manuelles Flucht und Dekodieren erzielt werden. Die korrekte Behandlung chinesischer Codierungsprobleme kann die Benutzererfahrung und die Datenlesbarkeit von Front-End- und Back-End-Interaktionen verbessern.