Maison >développement back-end >Problème PHP >Que dois-je faire si des caractères chinois tronqués apparaissent dans la requête php get ?
Solution au code chinois tronqué dans la requête php get : 1. Utilisez la méthode [$name = iconv("gbk","utf-8",$name);] pour résoudre le code tronqué ; Méthode mb_convert_encoding ($ nom, "utf-8", "gbk");]
Recommandé : "Tutoriel vidéo PHP"
php reçoit des paramètres chinois tronqués transmis par le GET méthode
J'ai récemment écrit une page simple et transmis les paramètres chinois depuis le navigateur (test.php?name=test). Quelle que soit la façon dont j'ai défini la page utf-8, des caractères tronqués étaient affichés. Je l'ai cherché sur Google. J'ai trouvé beaucoup de solutions, mais quelle est la cause du problème ? Personne n’a étudié cette question en profondeur. Par curiosité, il fallait que j'en vérifie la cause, et cela me permettrait aussi d'acquérir de l'expérience !
Tout d'abord, jetons un coup d'œil au code de test simple :
<?php header("Content-Type:text/html;charset=UTF-8"); $name = $_GET['name']; var_dump($name); ?>
Les résultats du test sont les suivants :
Le code indique que l'encodage du contenu de la réponse est utf-8, et le le contenu affiché est en effet tronqué. Veuillez noter ici que la longueur de la variable sortie par var_dump n'est que de 4. Évidemment, la longueur des deux caractères chinois doit être supérieure à 4 octets sous l'encodage utf-8. Jetons ensuite un œil à l'accès de Firefox à cette page url<.>
<?php header("Content-Type:text/html;charset=UTF-8"); $name = $_GET['name']; var_dump($name); ?>Résultat du test, affichage normal :
$name = iconv("gbk","utf-8",$name);Option 2 :
mb_convert_encoding($name, "utf-8", "gbk");
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!