


Conseils de codage chinois PHP que vous devez connaître ?
Cet article présente principalement 4 conseils pratiques de codage chinois PHP. Après les avoir maîtrisés, vous n'aurez plus à vous soucier des problèmes de codage.
Le problème de l'encodage chinois dans la programmation PHP a troublé de nombreuses personnes. La raison de ce problème est en fait très simple. Chaque pays (ou région) stipule l'encodage de caractères défini pour l'échange d'informations informatiques, comme l'extension de. le code ASCII des États-Unis, le GB2312-80 de la Chine, le JIS du Japon, etc. En tant que base du traitement de l'information dans ce pays/région, les jeux de codage de caractères jouent un rôle important dans l'unification du codage. Les jeux de codage de caractères sont divisés en deux catégories selon la longueur : SBCS (Single Byte Character Set ) et DBCS (Double Byte Character Set). Dans les premiers logiciels (en particulier les systèmes d'exploitation), afin de résoudre le traitement informatique des informations de caractères locales, diverses versions localisées (L10N) sont apparues afin de se différencier, des concepts tels que LANG et Codepage ont été introduits. Cependant, en raison du chevauchement des plages de codes des différents jeux de caractères locaux, il est difficile d'échanger des informations entre eux ; le coût de la maintenance indépendante de chaque version localisée du logiciel est élevé. Par conséquent, il est nécessaire d’extraire les points communs du travail de localisation et de les traiter de manière cohérente afin de minimiser le contenu spécial du traitement de localisation. C'est ce qu'on appelle également l'internationalisation (118N). Diverses informations linguistiques sont en outre standardisées en tant qu'informations locales. Le jeu de caractères sous-jacent traité est devenu Unicode, qui contient presque tous les glyphes.
De nos jours, la plupart du traitement des caractères de base des logiciels aux caractéristiques internationales est basé sur Unicode. Lorsque le logiciel est en cours d'exécution, les paramètres de codage de caractères locaux correspondants sont déterminés en fonction des paramètres régionaux/Lang/Codepage du moment. , et sur cette base, gérer les caractères locaux. Lors du traitement, il est nécessaire d'effectuer une conversion entre Unicode et les jeux de caractères locaux, voire entre deux jeux de caractères locaux différents avec Unicode comme intermédiaire. Cette méthode est encore étendue dans l'environnement réseau, et toute information de caractère aux deux extrémités du réseau doit également être convertie en contenu acceptable en fonction des paramètres du jeu de caractères.
Problèmes d'encodage des jeux de caractères dans les bases de données
Les systèmes de bases de données relationnelles populaires prennent tous en charge l'encodage des jeux de caractères des bases de données, ce qui signifie que lors de la création d'une base de données, cela peut spécifiez ses propres paramètres de jeu de caractères et les données de la base de données sont stockées dans le codage spécifié. Lorsqu'une application accède aux données, il y aura une conversion de codage de jeu de caractères à l'entrée et à la sortie. Pour les données chinoises, le paramètre de codage des caractères de la base de données doit garantir l'intégrité des données. GB2312, GBK, UTF-8, etc. sont tous des codages de jeux de caractères de base de données facultatifs ; bien sûr, nous pouvons également choisir ISO8859-1 (8 bits), mais nous devons diviser un caractère chinois ou Unicode de 16 bits avant que l'application n'écrive. données. Divisez-les en deux caractères de 8 bits. Après avoir lu les données, vous devez fusionner les deux octets et identifier les caractères SBCS. Par conséquent, nous ne recommandons pas d'utiliser ISO8859-1 comme codage du jeu de caractères de la base de données. Non seulement cela ne permet pas d'exploiter pleinement la prise en charge du codage des jeux de caractères de la base de données elle-même, mais cela augmente également la complexité de la programmation. Lors de la programmation, vous pouvez d'abord utiliser les fonctions de gestion fournies par le système de gestion de base de données pour vérifier si les données chinoises sont correctes.
Avant d'interroger la base de données, le programme PHP exécute d'abord mysql_query("SET NAMES xxxx"); où xxxx est l'encodage de votre page Web (charset=xxxx If charset=utf8). dans la page web, puis xxxx=utf8, si charset=gb2312 dans la page web, alors xxxx=gb2312 ont un code public pour se connecter à la base de données , qui est placé dans un fichier. . Dans ce fichier, ajoutez mysql_query ("SET NAMES xxxx") fera l'affaire.
SET NAMES Affiche le jeu de caractères utilisé dans l'instruction SQL envoyée par le client. Par conséquent, l'instruction SET NAMES 'utf-8' indique au serveur "les informations futures de ce client utilisent le jeu de caractères utf-8". Il spécifie également le jeu de caractères pour les résultats que le serveur renvoie au client (par exemple, si vous utilisez une instruction SELECT, il indique quel jeu de caractères est utilisé pour les valeurs de colonne).
Techniques couramment utilisées pour localiser les problèmes
La localisation des problèmes d'encodage chinois utilise généralement la méthode la plus stupide et la plus efficace : imprimer des caractères après traitement par le programme que vous pensez suspect. L'intérieur code de la chaîne. En imprimant le code interne d'une chaîne, vous pouvez savoir quand les caractères chinois sont convertis en Unicode, quand Unicode est reconverti en code interne chinois, quand un caractère chinois devient deux caractères Unicode, quand une chaîne chinoise est convertie en une chaîne de points d'interrogation, quand les bits hauts de la chaîne de caractères chinois ont-ils été coupés...
L'utilisation d'un exemple de chaîne approprié peut également aider à distinguer le type de question. Par exemple : "aaah aa?@aa" et autres chaînes de caractères chinois et anglais avec des caractères caractéristiques GB et GBK. D'une manière générale, les caractères anglais ne seront pas déformés quelle que soit la manière dont ils sont convertis ou traités (si vous les rencontrez, vous pouvez essayer d'augmenter la longueur des lettres anglaises consécutives).
Résoudre le problème de code tronqué dans diverses applications
1) Utilisez des balises pour définir l'encodage des pages
Le but de cette balise est de déclarer quel jeu de caractères le codage du navigateur du client utilise pour afficher la page xxx peut être GB2312, GBK, UTF-8 (différent de MySQL, qui est UTF8), etc. Par conséquent, la plupart des pages peuvent utiliser cette méthode pour indiquer au navigateur quel encodage utiliser lors de l'affichage de cette page, afin d'éviter les erreurs d'encodage et les caractères tronqués. Mais parfois, nous constaterons que cette phrase ne fonctionne toujours pas. Quel que soit le nom de xxx, le navigateur utilise toujours le même codage, j'en reparlerai plus tard.
Veuillez noter qu'il appartient aux informations HTML et qu'il ne s'agit que d'une déclaration, qui indique uniquement que le serveur a transmis les informations HTML au navigateur.
2) header("content-type:text/html; charset=xxx");
La fonction de cette fonction header() est de convertir les informations entre parenthèses Envoyé aux en-têtes http. Si le contenu entre parenthèses est celui mentionné dans l'article, la fonction est fondamentalement la même que l'étiquette. Si vous comparez la première, vous constaterez que les caractères sont similaires. Mais la différence est que s’il existe cette fonction, le navigateur utilisera toujours l’encodage xxx que vous avez demandé et ne désobéira jamais, cette fonction est donc très utile. Pourquoi cela se produit-il ? Ensuite, nous devons parler de la différence entre les en-têtes http et les informations HTML :
L'en-tête http est une chaîne envoyée par le serveur avant d'envoyer les informations HTML au navigateur via le protocole http. La balise appartient aux informations HTML, donc le contenu envoyé par header() atteint le navigateur en premier. Le point populaire est que la priorité de header() est supérieure à (je ne sais pas si je peux le dire). ce). Si une page PHP a à la fois header("content-type:text/html; charset=xxx") et header("content-type:text/html; charset=xxx"), le navigateur ne reconnaîtra que l'ancien en-tête http et pas méta. Bien entendu, cette fonction ne peut être utilisée qu’au sein des pages PHP.
Il reste également une question : pourquoi le premier fonctionne-t-il définitivement, mais le second ne fonctionne parfois pas ? C'est la raison pour laquelle nous voulons parler d'Apache ensuite ?
3) AddDefaultCharset
Dans le dossier conf du répertoire racine d'Apache, il y a l'intégralité du document de configuration d'Apache httpd.conf.
Utilisez un éditeur de texte pour ouvrir httpd.conf. La ligne 708 (différentes versions peuvent être différentes) contient AddDefaultCharset xxx, où xxx est le nom de codage. La signification de cette ligne de code : définissez le jeu de caractères dans l'en-tête http du fichier de page Web sur l'ensemble du serveur sur votre jeu de caractères xxx par défaut. Avoir cette ligne équivaut à ajouter une ligne de header("content-type:text/html; charset=xxx") à chaque fichier. Vous pouvez maintenant comprendre pourquoi le navigateur utilise toujours gb2312 même s'il est défini sur utf-8.
S'il y a un header("content-type:text/html; charset=xxx") dans la page Web, le jeu de caractères par défaut sera remplacé par le jeu de caractères que vous avez défini, donc cette fonction sera toujours utile. Si vous ajoutez un "#" devant AddDefaultCharset xxx, commentez cette phrase et que la page ne contient pas d'en-tête("content-type..."), alors c'est au tour de la balise méta de prendre effet.
L'ordre de priorité des éléments ci-dessus est répertorié ci-dessous :
.. header("content-type:text/html; charset=xxx")
.. AddDefaultCharset xxx
..
Si vous êtes un programmeur web, il est recommandé d'ajouter un en-tête ("content-type: text/html; charset=xxx") à chacune de vos pages, ainsi que vous pouvez garantir qu’il peut être affiché correctement sur n’importe quel serveur et qu’il a une forte portabilité.
4) La configuration default_charset dans PHP.ini :
Le default_charset = "gb2312" dans php.ini définit le jeu de caractères de langue par défaut de PHP. Il est généralement recommandé de commenter cette ligne et de laisser le navigateur sélectionner automatiquement la langue en fonction du jeu de caractères dans l'en-tête de la page Web au lieu de créer une exigence obligatoire, afin que les services Web dans plusieurs langues puissent être fournis sur le même serveur.
Conclusion
En fait, le codage chinois dans le développement PHP n'est pas aussi compliqué qu'on l'imagine, bien qu'il n'y ait pas de règles fixes pour localiser et résoudre les problèmes, ni d'environnements d'exploitation variés. sont également différents, mais le principe derrière est le même. Comprendre la connaissance des jeux de caractères est la base pour résoudre les problèmes de personnages. Cependant, avec les changements apportés au jeu de caractères chinois, non seulement la programmation PHP, mais aussi les problèmes de traitement de l'information chinoise persisteront pendant un certain temps.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Si vous êtes un développeur PHP expérimenté, vous aurez peut-être le sentiment d'y être déjà allé et de l'avoir déjà fait. Vous avez développé un nombre important d'applications, débogué des millions de lignes de code et peaufiné de nombreux scripts pour réaliser des opérations.

Liaison statique (statique: :) implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.
