Position actuelle: Accueil> Derniers articles> Comment résoudre le problème des paramètres de l'URL PHP chinois

Comment résoudre le problème des paramètres de l'URL PHP chinois

gitbox 2025-06-28

1. Définition du problème

Dans la programmation PHP, il est souvent nécessaire de transmettre des caractères chinois dans les paramètres d'URL. Cependant, comme les caractères chinois occupent plus d'octets que les caractères anglais, des problèmes brouillés se produisent pendant le passage. Pour résoudre ce problème, les caractères chinois doivent être spécifiquement codés.

2. Solution problématique

Encodage et décodage d'URL

Le codage de l'URL peut convertir des caractères spéciaux dans l'URL en un format conforme à la spécification URL. Dans PHP, vous pouvez coder la chaîne en utilisant la fonction Urlencode () pour vous assurer que tous les caractères non alphanumériques sont remplacés par la forme% xx, où xx est la représentation hexadécimale du code ASCII des caractères.

Par exemple, pour URL codez la chaîne "chinois", vous pouvez utiliser le code suivant:

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

Le code ci-dessus convertit "chinois" en "% E4% B8% AD% E6% 96% 87". Si vous avez besoin de décoder la chaîne codée, vous pouvez utiliser la fonction UrLDECODE () . Par exemple:

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

De plus, la fonction http_build_query () peut convertir un tableau en paramètre URL. S'il y a plusieurs paires de valeurs de clé, vous pouvez les combiner dans une URL complète:

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

Modifier le codage par défaut de PHP

Si votre application PHP utilise fréquemment des caractères chinois, vous pouvez éviter le code brouillé en modifiant le codage par défaut de PHP. Utilisez la fonction en-tête () pour définir le codage des caractères à l'en-tête du fichier PHP, par exemple:

 <span class="fun">en-tête (&#39;contenu-type: text / html; charset = utf-8&#39;);</span>

Après ce paramètre, toutes les sorties seront codées dans UTF-8, et même si les caractères chinois sont passés dans des paramètres d'URL, il n'y aura pas de code brouillé.

Assurez-vous que les paramètres de codage dans le fichier php.ini sont corrects

De plus, il est également nécessaire de s'assurer que les trois paramètres suivants dans le fichier php.ini sont configurés correctement:

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

Ces paramètres sont utilisés pour définir le codage par défaut, le codage interne et le codage d'entrée HTTP respectivement. La configuration correcte peut éviter efficacement le problème des chinois brouillés.

3. Résumé

Lors de la programmation en PHP, il est crucial de gérer les caractères chinois dans les paramètres d'URL. Grâce au codage et au décodage de l'URL, en modifiant le codage par défaut PHP et en réglant correctement le fichier php.ini, le problème du code brouillé peut être effectivement évité. En maîtrisant ces méthodes, vous pouvez vous assurer que les applications PHP peuvent gérer correctement les paramètres d'URL contenant le chinois.