Bonjour, j'ai un problème que je ne parviens pas à résoudre :
Je converti un site en php d'un charset iso-8859-1 vers utf-8
J'utilise donc un convertisseur de charset par lot qui à première vue fonctionne très bien mais :
certains fichier contiennent des includes php en tête de fichiers par exemple un fichier que j'appellerai fichier_maitre.php et qui contient ça :
Ce fichier_maitre.php et ses includes fonctionnait parfaitement en iso-8859-1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <?php include("fichier_01.php"); include("fichier_02.php"); include("fichier_03.php"); ?> <puis les headers en HTML 5>
mais une fois convertis en utf-8 (le fichier_maitre et les fichiers en includes) une erreur d'entête php apparait (headers already send etc... etc...)
J'ai vérifié au cas ou la possible erreur classique de laisser un blanc ou un retour chariot avant le <?php (verif faite dans le fichier_maitre et dans les includes évidemment).
Ces fichiers sont clean et pour cause aucune modif n'a été faites dans le contenu... la seul différence est la conversion vers utf-8
D'ou ma question : est-il possible que la conversion d'iso-8859-1 vers utf8 place dans les fichiers des caractères invisibles avant le <?php autres qu'espace ou retour chariot ? Ce qui engendrerai l'erreur de header php...
J'ai fait le test dans tous les sens : conversion iso vers utf8 et inversement plusieurs fois de suite en testant à chaque fois le résultat dans un navigateur et le problème se reproduit systèmatiquement : en iso pas de problèmes en utf8 un caractère (mais lequel ?) se fourre juste avant mon code php entrainant soit une erreur de header soit une ligne blanche en haut de mon site quand on l'affiche dans un navigateur.
De plus lorsque j'affiche le code dans un éditeur tout est normal : absolument aucun espace ni retour chariot n'est visible en tête de fichier avant le <?php
je pige plus rien...
Partager