Maison >développement back-end >tutoriel php >Comment supprimer les marques d'ordre d'octet (BOM) d'un fichier UTF-8 ?

Comment supprimer les marques d'ordre d'octet (BOM) d'un fichier UTF-8 ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-17 10:28:24944parcourir

How to Remove Byte Order Marks (BOMs) from a UTF-8 File?

Comment supprimer les marques d'ordre d'octet (BOM) du début d'un fichier

Problème :

Vous rencontrez un problème avec un fichier CSS contenant des caractères invisibles, notés par , qui perturbent son bon fonctionnement lors de sa lecture par PHP. Le fichier est enregistré en codage UTF-8, mais la suppression manuelle des caractères est difficile.

Réponse :

Les caractères que vous observez sont connus sous le nom de marques d'ordre d'octet ( Nomenclatures). Une nomenclature est un caractère Unicode qui indique l'ordre des octets (endianness) d'un fichier. Dans ce cas, la nomenclature UTF-8 signifie que le fichier utilise l'encodage UTF-8.

Solutions :

  • Désactiver les nomenclatures dans l'éditeur : Configurez votre éditeur pour ne pas insérer de nomenclatures lors de l'enregistrement des fichiers. Dans certains éditeurs, vous pouvez trouver un paramètre lié à « BOM ».
  • Supprimez les nomenclatures avec awk : Utilisez l'utilitaire de ligne de commande awk pour supprimer les nomenclatures du fichier :
awk 'sub(/^\xEF\xBB\xBF/, "")' input.css > output.css
  • Gérer les nomenclatures en PHP : Définir l'encodage interne PHP vers UTF-8 pour ignorer les nomenclatures lors de la lecture de fichiers :
<?php
mb_internal_encoding('UTF-8');
// Read and process CSS files
mb_internal_encoding('previous encoding'); // Restore previous encoding
?>

Remarque :

  • L'encodage ISO-8859-15 ne peut pas représenter l'UTF -8 BOM, donc enregistrer le fichier dans ce format entraînera une perte de données.
  • Les fins de ligne (Windows vs Linux) devraient n'affecte pas la détection de la nomenclature.

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