Maison  >  Article  >  développement back-end  >  Pourquoi le caractère 65279 apparaît-il dans ma réponse PHP ?

Pourquoi le caractère 65279 apparaît-il dans ma réponse PHP ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-07 12:01:03850parcourir

Why Does Character 65279 Appear in My PHP Response?

Comprendre le mystère de l'écho du caractère 65279 en PHP

Malgré un problème déroutant lors d'un rappel AJAX, où le texte s'affichait correctement dans une alerte mais n'a pas réussi à correspondre dans une instruction « if », le coupable était un caractère caché au début du texte de la réponse. Curieusement, ce caractère avait un code de caractère de 65279.

Une enquête plus approfondie a révélé que ce caractère, provenant du code PHP côté serveur, était un caractère de contrôle UTF-8 invisible destiné à définir l'encodage de la réponse. Cependant, la question se pose : pourquoi ce caractère a-t-il été répété par inadvertance ?

Après un examen plus approfondi du code PHP, une simple instruction « echo » a été utilisée pour afficher la réponse. Cependant, il est devenu évident que le Bloc-notes, qui a été utilisé pour enregistrer le fichier PHP, a subtilement ajouté une marque d'ordre d'octet (BOM) au fichier. Cette nomenclature était composée de trois octets : EF BB BF, et son but était d'indiquer que l'encodage du fichier était UTF-8 avec un ordre d'octets big-endian.

Bien que PHP gère généralement les nomenclatures sans problème, des problèmes peuvent survenir lorsqu'un fichier PHP est inclus dans un autre. Dans de tels cas, la nomenclature peut provoquer l'affichage de chaînes avec le caractère 65279 ajouté, ce qui entraîne un comportement inattendu dans les comparaisons.

Heureusement, il existe des moyens d'éviter ce problème :

  1. Utiliser le Bloc-notes et « Encoder en UTF-8 sans BOM » : Le Bloc-notes offre une option pour enregistrer les fichiers en encodage UTF-8 sans ajouter la nomenclature, résolvant ainsi efficacement le problème.
  2. Enregistrez le fichier PHP inclus en codage ANSI dans le Bloc-notes : Bien que cette option soit adaptée si le fichier ne contient pas de caractères étendus, elle peut ne pas être appropriée dans toutes les situations.

En les implémentant solutions, les développeurs peuvent empêcher l'apparition indésirable du caractère 65279 dans leurs réponses PHP, garantissant ainsi que les comparaisons et autres opérations sur les chaînes fonctionnent comme prévu.

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