Maison >développement back-end >Problème PHP >php définit le format d'encodage de chaîne

php définit le format d'encodage de chaîne

藏色散人
藏色散人original
2020-08-13 09:45:334005parcourir

La façon de définir le format d'encodage de chaîne en PHP est d'ajouter une ligne de code au début du code comme "header("Content-Type: text/html;charset=utf-8"); ".

php définit le format d'encodage de chaîne

Recommandé : "Tutoriel vidéo PHP"

php Définissez l'encodage des caractères sur utf-8

Ajouter une ligne au début du code :

header("Content-Type: text/html;charset=utf-8");

Introduction connexe :

L'essence des chaînes PHP

Explication citée dans la documentation PHP :

L'implémentation de string en PHP est un tableau d'octets plus un entier indiquant la longueur du tampon. Il n'y a aucune information sur la façon de convertir les octets en caractères, c'est au programmeur de décider. Il n'y a aucune restriction quant aux valeurs qui composent une chaîne, y compris les octets avec une valeur de 0 qui peuvent apparaître n'importe où dans la chaîne.

PHP ne spécifie pas l'encodage de la chaîne. La façon dont la chaîne est encodée dépend du programmeur. Les chaînes sont codées selon le codage du fichier PHP. Par exemple, si l'encodage de votre fichier est GBK, alors tout le contenu de votre code est GBK.

Complète le concept de sécurité binaire. Un octet avec une valeur de 0 (NULL) peut être à n'importe quelle position dans la chaîne. Cependant, la couche inférieure de certaines fonctions non binaires de PHP est la fonction C appelée. , qui ignorera les caractères après NULL .

Tant que l'encodage des fichiers PHP est compatible avec l'ASCII, les opérations sur les chaînes peuvent être correctement traitées. Cependant, les opérations sur les chaînes sont toujours de nature native (quel que soit l'encodage du fichier), vous devez donc faire attention lorsque vous les utilisez :

Certaines fonctions supposent que les chaînes sont codées en octets simples, mais ce n'est pas le cas. doivent être Les octets sont interprétés comme des caractères spécifiques. Par exemple, la fonction sbustr().

De nombreuses fonctions doivent transmettre explicitement des paramètres d'encodage, sinon la valeur par défaut sera obtenue à partir du fichier PHP.INI, comme la fonction htmlentities().

Il existe également certaines fonctions liées à la zone locale, et ces fonctions ne peuvent fonctionner que sur un seul octet.

Dans des circonstances normales, bien que PHP ne prenne pas en charge les caractères Unicode en interne, il prend en charge l'encodage UTF-8. Dans la plupart des cas, il n'y aura aucun problème, mais les situations suivantes peuvent ne pas être gérées :

Comment convertir des chaînes non encodées en UTF-8

Une page Web encodée en UTF-8, mais lorsque les utilisateurs soumettent le formulaire, ils peuvent utiliser l'encodage GBK (qui n'est pas conforme aux balises méta)

Un fichier PHP encodé en UTF-8, utilisant strlen("China") renvoie 6 au lieu du nombre réel de caractères (2)

Alors comment résoudre ce problème ? PHP fournit l'extension mbstring !

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