Maison  >  Article  >  développement back-end  >  Pourquoi la page Web php est-elle tronquée ?

Pourquoi la page Web php est-elle tronquée ?

青灯夜游
青灯夜游original
2021-11-10 18:41:516055parcourir

Les raisons des pages Web php tronquées : 1. L'encodage de la page Web (jeu de caractères) est mal défini, ce qui oblige le navigateur à l'analyser avec un encodage incorrect ; 2. Le fichier php est ouvert et enregistré avec un encodage incorrect ;

Pourquoi la page Web php est-elle tronquée ?

L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 7.1, ordinateur DELL G3

Lors de l'écriture réelle du code PHP, certains problèmes surviennent souvent, tels que des pages tronquées et d'autres problèmes. Ensuite, nous présenterons en détail les causes des pages PHP tronquées et les solutions associées.

De manière générale, il y a deux raisons pour l'apparition de caractères tronqués sur les pages PHP :

  • En raison d'un mauvais paramètre d'encodage (charset), le navigateur l'analyse avec un mauvais encodage, ce qui entraîne un écran plein de "Livres célestes" désordonnés

  • Le fichier a été ouvert avec un mauvais encodage puis enregistré. Par exemple, un fichier texte a été initialement encodé en GB2312, mais a été ouvert et enregistré en UTF-8.

Pour résoudre le problème de page PHP tronqué ci-dessus, vous devez d'abord savoir quels aspects du développement impliquent l'encodage :

  • Encodage de déclaration de page : dans le code HTML HEAD, il peut être utilisé pour indiquer au navigateur quel encodage le Utilisations des pages Web. Actuellement, dans le développement de sites Web chinois, XXX utilise principalement l'encodage GB2312 et UTF-8.

  • 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. Il convient de noter ici qu'il ne doit pas être confondu avec l'encodage de la base de données elle-même, par exemple, l'encodage interne par défaut. L'encodage de MySQL est un encodage latin1, ce qui signifie que Mysql est que les données sont stockées en encodage latin1 et que les données transmises à Mysql dans d'autres encodages seront converties en encodage latin1.

Maintenant que nous savons où le codage est impliqué dans le développement WEB, nous connaissons également la raison pour laquelle la page PHP est tronquée : les paramètres de codage ci-dessus sont incohérents. Puisque la plupart des différents codages sont compatibles avec l'ASCII, les symboles anglais ne le seront pas. apparaître. Le chinois n’a pas de chance.

Voici quelques situations d'erreur et solutions courantes :

1. La base de données utilise le codage UTF8 et le codage de la déclaration de page est GB2312. Il s'agit de la cause la plus courante de caractères tronqués. À ce stade, si vous SÉLECTIONNEZ directement les données dans le script PHP, la page PHP sera tronquée. Vous devez l'utiliser avant d'interroger :

mysql_query("SET NAMES GBK"); pour définir le. Encodage de connexion MYSQL pour garantir que la page L'encodage de déclaration 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 GBK"); 来设定MYSQL连接编码,保证页面申明编码与这里设定的连接编码一致(GBK是GB2312的扩展)。如果页面是UTF-8编码的话,可以用:

mysql_query("SET NAMES UTF8");

mysql_query("SET NAMES UTF8"); Notez qu'il s'agit d'UTF8 au lieu de l'UTF-8 couramment utilisé. 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 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 est mentionné ci-dessus. Il existe 2 encodages par défaut définis dans le fichier de configuration MYSQL my.ini, qui sont définis par défaut dans [client] et. [mysqld] Le jeu de caractères par défaut est utilisé pour définir le codage utilisé par la connexion client par défaut et la base de données interne. L'encodage que nous avons 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. L'encodage de la déclaration de page est incohérent avec l'encodage du fichier lui-même. Cela arrive rarement car si l'encodage est incohérent, ce que l'artiste verra dans le navigateur lors de la création de la page sera des caractères tronqués. Le plus souvent, cela est dû à la correction de quelques bugs mineurs après la publication, à l'ouverture de la page avec un mauvais encodage, 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.

Apprentissage recommandé : "Tutoriel vidéo 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn