Tous les fichiers PHP phpBB3 doivent être sauvegardés avec l’encodage de fichier UTF-8 sans BOM. La partie « sans nomenclature » est importante. Cet article explique ce qu’est la nomenclature, comment elle cause des problèmes et comment les prévenir.
Qu’est-ce qu’une nomenclature ?
Source : Indicateur d'ordre des octets - WikipédiaWikipédia a écrit :Une marque d’ordre d’octet (BOM) est le caractère Unicode au point de code U+FEFF (« espace insécable de largeur nulle ») lorsque ce caractère est utilisé pour indiquer l’endianness d’une chaîne de caractères UCS/Unicode codés en UTF-16 ou UTF-32. Il est classiquement utilisé comme marqueur pour indiquer que le texte est encodé en UTF-8, UTF-16 ou UTF-32.
Cela signifie que lorsqu’un fichier est enregistré avec une nomenclature, un caractère Unicode est inséré au début du fichier que la plupart des éditeurs de texte n’affichent pas.
Pourquoi est-ce un problème ?
PHP (et non phpBB) en règle générale est toujours médiocre lorsqu’il s’agit de gérer les caractères UTF-8 et l’encodage. Pour cette raison, le moteur PHP ne saura pas comment gérer le caractère BOM au début d’un fichier php et le traitera donc comme un morceau de texte normal. Dans beaucoup de fichiers phpBB3, il est important qu’il n’y ait rien en dehors des balises PHP (<?php et ?>) afin que rien ne soit affiché au navigateur avant que les en-têtes ne soient envoyés.
Un exemple classique de ceci en action est lorsque les utilisateurs doivent créer un nouveau fichier config.php et qu’ils laissent accidentellement un espace avant la balise PHP de démarrage (<?php). Cela provoque une erreur telle que la suivante :
Code : Tout sélectionner
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3729: Cannot modify header information - headers already sent by (output started at /config.php:1)
Ce problème semble plus fréquent lors de l’édition des fichiers de langage phpBB3 et de leur enregistrement dans le fichier d’encodage UTF-8 avec la nomenclature. Cela peut entraîner des erreurs similaires à celle postée ci-dessus ou, selon les fichiers édités, cela peut causer d’autres problèmes tels que l’image de confirmation visuelle qui ne fonctionne pas.
Comment enregistrer correctement un fichier ?
Cela diffère d’un éditeur à l’autre. En règle générale, vous devez toujours utiliser un bon éditeur de texte brut pour modifier vos fichiers. Cela n’inclut pas le bloc-notes ou le bloc-notes ! Microsoft les a conçus pour insérer automatiquement la nomenclature lorsque les fichiers sont enregistrés au format UTF-8 et en tant que tels, ils ne doivent pas être utilisés !
Un éditeur qui est souvent recommandé pour l’édition de fichiers phpBB3 est Notepad++. Il s’agit d’un éditeur gratuit qui est publié sous le nom de licence GPL.
Pour modifier et enregistrer correctement un fichier à l’aide de Notepad++, vous devez cliquer sur le mot « Encodage » dans le menu supérieur et sélectionner « Encoder en UTF-8 sans nomenclature »
Une fois cette option définie, vous pouvez modifier et enregistrer votre fichier comme d’habitude.
Remarque : Depuis la version 6.8.1 de Notepad++, UTF-8 sans BOM est simplement appelé UTF-8.
Si vous utilisez un éditeur différent, vous constaterez probablement que la méthode de choix de l’encodage du fichier est différente. Il est très probable que vous deviez utiliser l’option « enregistrer sous » lors de l’enregistrement du fichier. Dans la plupart des cas, cela donnera une fenêtre contextuelle qui a un menu déroulant pour définir l’encodage du fichier lors de l’enregistrement. Si ce menu déroulant n’a pas d’option « UTF-8 sans nomenclature », vous devrez vous référer à la documentation de l’éditeur pour obtenir des instructions sur la façon d’enregistrer des fichiers dans l’encodage UTF-8 sans nomenclature.
Que se passe-t-il si j’ai enregistré dans le mauvais encodage ?
J’ai vu qu’il est dit que vous pouvez utiliser les options de certains éditeurs pour convertir l’encodage en UTF-8 sans BOM si le fichier a été enregistré dans le mauvais encodage. Si votre éditeur ne fournit pas cette option, vous devrez remplacer le fichier par une nouvelle copie du téléchargement de phpBB3, puis réappliquer les modifications que vous avez apportées à ce fichier. Après avoir réappliqué les modifications, assurez-vous d’enregistrer le fichier dans l’encodage de fichier correct, c’est-à-dire UTF-8 sans nomenclature.
https://www.phpbb.com/support/docs/en/3 ... thout-bom/