Page 1 sur 1

3 caractères bizarres sur fichier txt

Posté : 05 sept. 2013, 17:18
par russule
Bonjour à toutes et tous,

Je lis un fichier txt en php avec fgets.
J'ai créé le fichier avec Notepad++ et pas de pb, je lis bien les enregistrements du fichier.

J'ai modifié le fichier avec blocnote et là, bizarre, bizarre, je me retrouve avec 3 caractères fantômes au début du premier enregistrement
Quand je fais un ord dessus pour voir le code ascii, j'ai: 239, 187, 191

Question pour spécialistes: A quoi correspondent ces trois caractères fantômes sur le premier enregistrement ???
Là, je sèche...

Merci à vous.
Cordialement

Re: 3 caractères bizarres sur fichier txt

Posté : 05 sept. 2013, 18:49
par xTG
Je pencherai pour un encodage que blocnote ne gère pas. (il ne fait que de l'iso si je ne m'abuse)
Et donc lors de l'enregistrement il t'aurait fait n'importe quoi.
Car rien que le premier représente une lettre grecque...

Re: 3 caractères bizarres sur fichier txt

Posté : 05 sept. 2013, 19:18
par russule
Bonjour,

Merci pour ta réponse.
En fait, le fichier est bon, c'est juste ces trois petits caractères invisibles dont la fonction ord renvoie 239,187 et 191 qui sont là.
On peut les enlever avec une fonction php ?

Cordialement

Re: 3 caractères bizarres sur fichier txt

Posté : 05 sept. 2013, 20:12
par xTG
Plutôt que de les penser à les enlever je commencerai plutôt par comprendre comment ils sont arrivés moi.
Les vois-tu avec notepad++ ? (ou même avec le bloc note vu que la lettre grecque devrait s'afficher)

Re: 3 caractères bizarres sur fichier txt

Posté : 05 sept. 2013, 21:21
par russule
Ok, d'accord avec toi, mais je ne sais pas pourquoi, c'est justement ma question.
Avec Notepad++, ils ne sont pas là...et avec blocnote oui...
Mais ils ne sont pas visibles, on les voit avec la fonction ord.
C'est hyper facile à tester:
Tu crée un fichier avec Notepad++, tu l'ouvres avec blocnote et tu l'enregistres. Tu fais un fget dessus en php et hop, tu as ces trois caractères en plus en début du premier enreg.
Si tu fais un strlen dessus, tu vois vite qu'il y a 3 caractères de plus...

J'ai réussi à les enlever avec la fonction trim et en bidouillant un code hexa car la fonction ord donne un code ASCII qui ne correspond à rien.

Quant au pourquoi et à quoi ça correspond, je pense que ce doit être vraiment chaud patate...
Voilà, voilà...
Je donne la main aux informaticiens si l'explication existe.

Cordialement.

Re: 3 caractères bizarres sur fichier txt

Posté : 06 sept. 2013, 09:18
par xTG
Notepad++ permet de voir les caractères invisibles c'est pour cela que je te posais la question.
Mais la lettre grecque n'est de toute façon pas un caractère invisible !
Donc si tu ne la vois pas dans un éditeur... Je remettrai plutôt en cause ton code.
Voilà où je voulais en venir. :)

Re: 3 caractères bizarres sur fichier txt

Posté : 06 sept. 2013, 10:38
par moogli
C'est quoi l'encodage du fichier ?
Parce que php ne gère pas l'utf8 cela expliquer l'erreur sur le strlen.

Ensuite avec le code php qui pose problème on pourrais y voir plus clair ;)


@+

Re: 3 caractères bizarres sur fichier txt

Posté : 11 sept. 2013, 15:14
par russule
Hello,

Bon, j'ai trouvé (mon code n'est pas en cause :) )
Il se trouve que blocnote ajoute 3 "caractères" dans la première ligne du fichier qui indique que l'encodage est utf8.
Il suffit de les enlever.

Cordialement

Re: [RESOLU] 3 caractères bizarres sur fichier txt

Posté : 11 sept. 2013, 23:11
par moogli
=> BOM ?
cas assez classique malheureusement, c'est visible avec notepad++ qui va te l'indiquer dans le menu encodage ;)

@+