Maison >développement back-end >Problème PHP >Code chinois tronqué dans la page php
Que dois-je faire si la page php contient des caractères chinois tronqués ?
Ouvrez d'abord la page et affichez le fichier PHP tronqué
Puis écrivez :
header('Content-type:text/html;charset=utf-8');
en haut du fichier PHP pour afficher le chinois.
Manuel recommandé : Manuel d'auto-apprentissage complet php
Introduction connexe :
1. fait référence à Il s'agit de l'encodage dans lequel le fichier d'échange (.html, .php, etc.) lui-même est enregistré. 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 un mauvais encodage pendant le travail, et le sauvegardera après avoir effectué la modification, tronqué. des personnages vont apparaître (je le ressens profondément).
2. Encodage de la déclaration de page : Dans le code HTML HEAD, vous pouvez utiliser e8b088d6bcb59096041b1c501b34c57e pour indiquer le navigateur Quel encodage est utilisé pour la page Web du serveur ? Actuellement, XXX utilise principalement GB2312 et UTF-8 dans le développement de sites Web chinois
3. Encodage de connexion à la base de données : fait référence à l'encodage utilisé lors de l'exécution des opérations de base de données. Lors de la transmission de données depuis la base de données, vous devez faire attention à ne pas les confondre avec l'encodage de la base de données elle-même. Par exemple, l'encodage par défaut dans MySQL est l'encodage latin1, ce qui signifie que Mysql stocke les données en encodage latin1. dans d'autres encodages sera converti en latin1.
En sachant où l'encodage est impliqué dans le développement WEB, vous saurez également la raison pour laquelle la page PHP est tronquée : les trois paramètres d'encodage ci-dessus sont incohérents, car la plupart d'entre eux. les différents encodages sont compatibles ASCII, donc les symboles anglais n'apparaîtront pas, mais les caractères chinois n'ont pas de chance. Voici quelques situations d'erreur courantes et solutions :
1 La base de données utilise l'encodage UTF8 et l'encodage de déclaration de page. est GB2312. C'est la cause la plus courante de caractères tronqués. À ce stade, la page PHP sera tronquée lors de la sélection directe de données dans le script PHP. Vous devez utiliser :
mysql_query("SET NAMES GBK. "); pour définir l'encodage de connexion MYSQL afin de garantir que la page déclare l'encodage. Il est cohérent avec l'encodage de connexion défini ici (GBK est une extension de GB2312). Si la page est encodée en UTF-8, vous pouvez utiliser :
mysql_query("SET NAMES UTF8"); Notez qu'il s'agit d'UTF8 au lieu d'un usage général. Si l'encodage de la déclaration de page est cohérent avec l'encodage interne de la base de données, vous n'avez pas besoin de le faire. définir l'encodage de connexion.
Remarque : en fait, l'entrée et la sortie des données de MYSQL sont plus compliquées que ce qui précède. Le fichier de configuration MYSQL my. Il existe deux encodages par défaut définis dans ini, à savoir default-character-. défini dans [client] et default-character-set dans [mysqld] pour définir respectivement l'encodage utilisé par la connexion client et la base de données en interne. L'encodage spécifié ci-dessus est en fait le paramètre de ligne de commande caractère_set_client lorsque le client MYSQL se connecte au serveur, qui indique au serveur MYSQL quel est l'encodage des données client reçues, au lieu d'utiliser l'encodage par défaut
2. Encodage de la déclaration de page Il est incompatible avec l'encodage du fichier lui-même. l'encodage est incohérent, ce que vous voyez dans le navigateur lorsque vous créez la page est du code tronqué. Le plus souvent, cela est dû à la correction de quelques petits bugs après la publication, à l'ouverture de la page avec un encodage incorrect, puis à son enregistrement. Ou vous utilisez un logiciel FTP pour modifier directement des fichiers en ligne, tel que CuteFTP. En raison d'une configuration d'encodage logicielle incorrecte, un encodage incorrect est converti.
3. Certains amis qui louent des hôtes virtuels ont encore des pages PHP tronquées même si les trois encodages ci-dessus sont correctement définis. Par exemple, si la page Web est codée en GB2312, elle est toujours reconnue comme UTF-8 lorsqu'elle est ouverte par des navigateurs tels que IE. Le HEAD de la page Web a déjà indiqué qu'il s'agit de GB2312 après avoir modifié manuellement le codage du navigateur en GB2312. , la page s'affiche normalement. La raison en est que le serveur Apache définit le codage global par défaut du serveur et ajoute AddDefaultCharset UTF-8 dans httpd.conf. A ce moment, le serveur enverra d'abord l'en-tête HTTP au navigateur, et sa priorité est supérieure à l'encodage déclaré dans la page. Naturellement, le navigateur ne le reconnaîtra pas correctement. Il existe deux solutions. Les administrateurs doivent ajouter AddDefaultCharset GB2312 au fichier de configuration de leur propre machine virtuelle pour remplacer la configuration globale, ou la configurer en .htaccess dans leur propre répertoire.
Articles connexes recommandés :
1.Comment résoudre les caractères chinois tronqués en PHP ? Introduction à trois situations de caractères chinois tronqués en PHP
Recommandations vidéo associées :
1.Tutoriel vidéo Dugu Jiujian (4)_PHP
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!