Maison >développement back-end >Problème PHP >Comment résoudre le problème des caractères chinois tronqués dans la sortie php ?
Solution : 1. Pour les pages mélangées avec HTML et PHP, vous devez utiliser la balise méta ou la fonction header() pour unifier l'encodage de la page. 2. Pour les pages statiques PHP pures, utilisez l'en-tête ( ) pour définir l'encodage sur "utf -8" ; 3. Utilisez mysql_query() pour définir l'encodage de la connexion PHP à mysql.
De manière générale, il existe deux raisons pour l'apparition de caractères tronqués. La première est due à un mauvais paramètre d'encodage (jeu de caractères), qui entraîne le navigateur. analyser avec un mauvais encodage. En conséquence, l'écran est plein de "Livres du Ciel" désordonnés. Deuxièmement, le fichier est ouvert avec un mauvais encodage, puis enregistré. Par exemple, un fichier texte a été initialement encodé en GB2312, mais il. a été ouvert en codage UTF-8 puis enregistré. Pour résoudre le problème de code tronqué ci-dessus, vous devez d'abord savoir quels aspects du développement impliquent l'encodage :
1 Encodage du fichier : fait référence à l'encodage dans lequel le fichier d'échange (.html, .php, etc.) lui-même est sauvé. Le Bloc-notes et Dreamweaver reconnaîtront automatiquement l'encodage du fichier lors de l'ouverture de la page, il y aura donc moins de problèmes. Cependant, ZendStudio ne reconnaît pas automatiquement l'encodage. Il ouvrira uniquement le fichier dans un certain encodage en fonction de la configuration des préférences si vous ouvrez accidentellement le fichier avec le mauvais encodage pendant le travail, et le sauvegardera après avoir effectué la modification, tronqué. des personnages apparaîtront.
2. Encodage de la déclaration de page : Dans le code HTML HEAD, vous pouvez utiliser (ce phrase Il doit être écrit devant
3. Encodage de connexion à la base de données : fait référence à l'encodage utilisé pour transmettre des données à la base de données lors de l'exécution d'opérations de base de données. l'encodage de la base de données elle-même, comme MySQL. La valeur interne par défaut est l'encodage latin1, ce qui signifie que Mysql stocke les données en encodage latin1. Les données transmises à Mysql dans d'autres encodages seront converties en encodage latin1
Je sais. où l'encodage est impliqué dans le développement WEB. Nous connaissons également la raison des caractères tronqués : les trois paramètres d'encodage ci-dessus sont incohérents. Puisque la plupart des différents encodages sont compatibles avec l'ASCII, les symboles anglais n'apparaîtront pas et les caractères chinois seront absents. chance. 🎜>Solution pour la sortie php de caractères chinois tronqués
La première solution de page mixte HTML et PHP
Méthode 1 : Utiliser < ; balise meta> Si le code PHP est intégré au HTML, vous pouvez utiliser
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>php输出中文乱码</title> </head> <body> <div class="demo"> <?php echo "php中文网!"; ?> </div> </body> </html>
Méthode 2 : utilisez la fonction header() <meta>来解决中文乱码问题
<?php header("content-type:text/html;charset=utf-8"); //设置编码 ?>
Si votre page PHP contient des caractères tronqués, ajoutez simplement le code suivant au début de la page
<?php header("content-type:text/html;charset=utf-8"); //设置编码 ?><.>Le troisième type, problème PHP+Mysql chinois tronqué
En plus de suivre la troisième opération, vous devez également interroger/modifier vos données/Ajouter l'encodage de la base de données avant ajoutant De plus, il convient de noter que l'UTF8 ici est différent du précédent. Il n'y a pas de ligne horizontale au milieu
<?php mysql_query('SET NAMES UTF8'); //接下来的就是查出数据或者修改,增加 ?>Et si la version de MySQL que vous utilisez est 4.1 ou supérieure. . Pour les versions supérieures, vous pouvez définir un codage de caractères après la liaison à l'opération de base de données, comme suit
Remarque :
est utilisé lorsque la base de données. des opérations sont requises. L'encodage de mysql_query("set names 'encoding'"); ajouté avant le programme php doit être cohérent avec l'encodage php. Si l'encodage php est gb2312, alors l'encodage mysql est gb2312. , alors le codage MySQL est utf8. Insérer ou Il n'y aura pas de caractères tronqués lors de la récupération des données
Pour plus de connaissances sur la programmation, veuillez visiter :
Enseignement de la programmation! !
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!