[Résolu] Readfile et UTF-8 : problème d'espace.

Readfile et UTF-8 : problème d'espace. [Résolu] - PHP - Programmation

Marsh Posté le 21-11-2006 à 13:46:48    

Bonjour tout le monde,

 

une question que j'avais déjà posée il y a longtemps sans avoir pu obtenir de réponse.

 

Petite précision, si le HTML ou les CSS cela va à peu près, je tiens à préciser que je connais pas grand-chose au PHP que je n'utilise que pour la fonction readfile() qui me permet des "inclusions" (pour le menu notamment qui, si il change, change automatiquement dans tout mon site).

 

Alors :
que cela soit pour mon menu, barre de navigation horizontale ou commentaires qui ne varient pas d'une image à l'autre, j'utilise la fonction readfile() qui insère un fichier au format text (.TXT). Ce fichier texte peut être sauvegardé soit en ANSI, soit en UTF-8 : problème, en ANSI je dois convertir tous mes caractères accentués ou étrangers (farsi par exemple) en &agrave; &ocirc; &Ecirc; etc etc. En UTF-8, je peux écrire "normalement". Pour le farsi (perse/iranien), alors là, à ma connaissance, c'est même impossible. Tout cela pour dire qu'au final, j'enregistre mes fichiers à inclure au format texte .TXT UTF-8. Exemple de l'utilisation de la commande readfile() : <?php readfile('includes/commentaires_jardin-eram.txt'); ?>.

 

FIREFOX (2.0) : aucun problème.
IE (6, le 7 j'ai du mal à l'installer) : problème (ça ne m'inquiétait pas plus que ça, étant donné que c'était IE).
Opéra (9.2) : PROBLÈME ! (là ça m'inquiéte plus).

 

Avec Opéra ou IE, un espace (visuel) est inséré automatiquement AVANT l'insertion. Espace qui se créé UNIQUEMENT si mon .TXT est sauvé en UTF-8, pas s'il l'est en ANSI.

 

En image c'est ici : http://www.albert-videt.eu/photogr [...] ram_00.php
Tout en haut de page (avant navigation dite "horizontale" ), espace créé sous Opéra et IE mais pas sous FIREFOX.
Idem entre la photographie et le texte juste en dessous.

 

Une solution svp ?

 

Merci.

 

P.S. : cela fait (très) longtemps que je me suis penché sur le problème sans y trouver de solution. Si vous pouviez m'indiquer une piste, cela m'aiderait grandement.


Message édité par Beral2 le 14-05-2008 à 18:02:33

---------------
Portfolio
Reply

Marsh Posté le 21-11-2006 à 13:46:48   

Reply

Marsh Posté le 21-11-2006 à 13:50:57    

C'est plutôt un problème de CSS qu'autre chose...

Reply

Marsh Posté le 21-11-2006 à 13:55:55    

Bonjour,
 
non je ne pense pas, pour la barre de navigation horizontale, l'insert ainsi que la CSS qui lui est destiné sont très simples :
 
.TXT : <p class="navigation-horizontale"><a href="/index.php">Accueil</a> > <a href="/photographie/index.php">Photographie</a> > Carnet de route > <a href="/photographie/carnet_de_route/iran_10-2006/iran_introduction.php">Iran, république islamique d' / Jomh&#363;r&#299;-ye Esl&#257;m&#299;-ye &#298;r&#257;n / <span class="farsi">ايران</span></a></p>
 
Bout de CSS :
p
 {
 font-size: 0.7em;
 text-align: left;
 margin: 3px 0px 3px 0px;
 color: #DADAD9;
 }
 
ET
 
p.navigation-horizontale
 {
 font-size: 0.6em;
 margin: 0;
 text-transform: uppercase;
 }
 
Mais le plus troublant est que cela ne se produit pas si mon .TXT est sauvegardé en ANSI !


---------------
Portfolio
Reply

Marsh Posté le 21-11-2006 à 13:57:46    

Déjà les '>' doivent être convertit en &gt;. Ensuite c'est plus une liste qu'un paragraphe...

Reply

Marsh Posté le 21-11-2006 à 13:58:09    

Ca peut aussi venir d'un BOM dans le fichier, qu'il faut dégager (ça se fait lors de la sauvegarde)

Reply

Marsh Posté le 21-11-2006 à 14:01:38    

"... Déjà les '>' doivent être convertit en &gt;. Ensuite c'est plus une liste qu'un paragraphe... "
OK, c'est noté.
 
" ... Ca peut aussi venir d'un BOM dans le fichier, qu'il faut dégager (ça se fait lors de la sauvegarde) ..."
Hum désolé, c'est quoi un BOM ? (pour info j'utilise SciTE comme éditeur mais je passe par notepad (sic) pour les sauver en UTF-8, pas trouvé comment faire avec SciTE).
 
EDIT, ok trouvé pour BOM (http://www.linux-france.org/prj/jargonf/B/BOM.html) mais comment cela peut-il être changé ? Merci.


Message édité par Beral2 le 21-11-2006 à 14:03:47

---------------
Portfolio
Reply

Marsh Posté le 21-11-2006 à 14:05:02    

Faut regarder dans le logiciel comment faire...

Reply

Marsh Posté le 21-11-2006 à 14:28:15    

Après avoir lu cela http://fr.wikipedia.org/wiki/Marque_d'ordre_des_octets et cela http://www.unicode.org/unicode/faq/utf_bom.html#BOM, il me semble qu'il me faudrait justement sauver mes fichiers SANS ce BOM. Comment peut-on faire svp ? J'ai cherché avec SciTE, pas trouvé, utiliser un autre éditeur de texte ? Si oui lequel par exemple ? Merci.


---------------
Portfolio
Reply

Marsh Posté le 21-11-2006 à 15:17:32    

!!! hallelujah !!!
 
Trouvé, avec Notepad++ qui permet l'enregistrement en UTF-8 SANS BOM !
Pour ceux que cela pourrait intéresser, ouvrir le fichier au format UTF-8, LE PASSER D'ABORD EN ANSI (menu Format) puis en UTF-8 sans BOM (ne peut pas passer directement de l'UTF-8 avec BOM à celui sans BOM).
 
Ce problème est à rapprocher de celui de l'apparition du "caractère" "" dans un code source de page HTML.
 
Merci Florent pour la piste.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed