Bonjour,

J'ai un petit souci d'encodage. Je désire afficher un fichier *.txt qui est exporter de Excel. Ensuite il est convertit en UTF8 via php -> le problème c'est que sous IE le fichier s'affiche correctement, mais sous frefox le fichier s'affiche ainsi F�T�S�E�1�0�0� �(�L�F�T�N�)�.

Quelqu'un a une petite idée?

Merci
Modifié par kallawoen (15 Apr 2009 - 11:54)
Bonjour,

Quel est l'encodage utilisé par chaque navigateur pour interpréter le contenu du fichier? Dans Firefox, tu peux le voir dans le menu Affichage > Encodage des caractères. Pour IE, je sais plus trop.
Les «petits losanges» sont typiques de contenus en ISO-8859-1 (latin1) ou en Windows-1252 (CP1252) interprétés comme de l'UTF-8. Cela peut arriver si tu déclares un tel contenu comme étant en UTF-8 (alors que ce n'est pas le cas), ou si le navigateur utilise l'encodage UTF-8 par défaut. Dans Firefox, si tu bascules manuellement en ISO-8859-1 ou en Windows-1252, est-ce que ça corrige le problème? Auquel cas, tu sais maintenant avec certitude quel est l'encodage des contenus réellement reçus par le navigateur.

Pour la différence entre Firefox et IE... une différence d'encodage par défaut, peut-être? En dehors de ce paramètre, on n'a généralement pas de différence entre deux navigateurs.

À tout hasard, je rappelle qu'il y a un salon marqué [Pré-requis] en post-it dans ce sujet. Il serait bon, si ce n'est pas déjà fait, de le lire et d'explorer les ressources qui y sont référencées. Smiley cligne
kallawoen a écrit :
coucou,

J'ai vérifier mais tout est bien en UTF8.

Merci


Tu envoies bien les bons headers avec le bon type/mime et le bon encodage?

Un truc du genre :

header('Content-Type: text/plain; charset=UTF-8');

Modifié par Patidou (03 Apr 2009 - 11:37)
oui j'ai cela dans le header

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


Je voulais ajouter que ce fichier texte est créer à partir de Excel
Modifié par kallawoen (03 Apr 2009 - 12:24)
Salut,

Florent V. a écrit :
À tout hasard, je rappelle qu'il y a un salon marqué [Pré-requis] en post-it dans ce sujet. Il serait bon, si ce n'est pas déjà fait, de le lire et d'explorer les ressources qui y sont référencées. Smiley cligne
salut,

Tu crois que je sais pas lire, c'est pas la peine de me copier ce qu'à dit Florent V. Si j'avais la solution je demanderai pas ...
kallawoen a écrit :
oui j'ai cela dans le header

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


Je voulais ajouter que ce fichier texte est créer à partir de Excel


Non je parle des headers http (voir le lien et le code php que je t'ai donné).
Modifié par Patidou (03 Apr 2009 - 12:49)
Si ton fichier n'est pas généré par php, tu peux placer un htaccess dans le dossier des fichiers txt avec comme contenu :

AddType 'text/plain; charset=UTF-8' .txt


(oups)
Modifié par Patidou (03 Apr 2009 - 13:01)
kallawoen a écrit :
oui ce fichier est généré généré en php


Alors il ne te reste plus qu'à ajouter la ligne de code php donnée plus haut (juste avant l'envoi des données du fichier). Smiley cligne
Modifié par Patidou (03 Apr 2009 - 13:21)
kallawoen a écrit :
Tu crois que je sais pas lire, c'est pas la peine de me copier ce qu'à dit Florent V. Si j'avais la solution je demanderai pas ...
Zen... Smiley hippy

Si tu avais suivi ce lien et bien compris ce qui est expliqué ( Smiley murf ) tu saurais que la balise meta n'est pas prise en compte si des headers sont envoyés (via serveur, php ou htaccess) car ils sont alors prioritaires...

D'où mon (très sympathique) message précédent... Smiley smile
Modifié par Heyoan (03 Apr 2009 - 16:25)
je sais bien, mais cela ne fonctionne toujours pas. je pense que le problème se produit lors de la création du fichier txt via excel.

merci encore de votre aide Smiley smile
kallawoen a écrit :
je pense que le problème se produit lors de la création du fichier txt via excel.
Juste pour être sûr tu récupères bien le fichier avec un code de ce style ?
$texte = utf8_encode(file_get_contents('Classeur.txt'));
bonjour,

Merci de votre aide, on a trouvé l'erreur, en fait à la création du fichier TXT, il y avait des espaces qui étaient générés du coup Mozilla intépretait ces espaces et les affichait avec des petits carrés. On a donc supprimé les espaces et c'est ok.

Smiley rolleyes Smiley biggol
kallawoen a écrit :
Merci de votre aide, on a trouvé l'erreur, en fait à la création du fichier TXT, il y avait des espaces qui étaient générés du coup Mozilla intépretait ces espaces et les affichait avec des petits carrés.

Euh... je doute que ça soit le cas.

Supposition: lors de la création du fichier texte, il y a des valeurs numériques qui sont générées, valeurs n'existant pas en UTF-8. Chaque outil, lorsqu'il analyse la page en UTF-8, va afficher ces caractères non compatibles d'une manière ou d'une autre. Affichages possible:
- pas d'affichage;
- affichage comme espace;
- remplacement par un point d'interrogation;
- remplacement par un caractère dédié (le point d'interrogation dans un losange);
- affichage sous la forme d'un caractère-bloc affichant la valeur numérique.
Un éditeur hexadécimal permettrait de savoir de quoi il s'agit exactement.

Bien sûr, ce n'est qu'une supposition, je n'ai pas les éléments sous la main pour le vérifier. Mais il n'y a pas de raison pour que des espaces valides en UTF-8 soient affichés autrement que comme des espaces.