Encodage fichier texte

Dreanad Messages postés 91 Statut Membre -  
tryan44 Messages postés 1381 Statut Membre -
Bonjour à tous,

je travail sur un projet en PPE, qui consiste a faire en gros une interface d'administration sur un site, pour que l'entreprise, puisse envoyé de nouvelle vente ou locations

donc j'ai un formulaire qui genere un fichier texte, avec par ligne toute les données du formulaire

ces données sont lus pour affiché, mais le problème, c'est que l'encodage se fait très mal, c'est a dire que je me retrouve avec des symboles a la place des accents!

CODE

GENERATION DU FICHIER TEXTE:
$file = fopen('../locations/'.$ref.'.txt',"w");
fwrite($file,utf8_encode($ref)."\r\n");
fwrite($file,utf8_encode($type)."\r\n");
fwrite($file,utf8_encode($secteur)."\r\n");
fwrite($file,utf8_encode($surface)."\r\n");
fwrite($file,utf8_encode($surface_terrain)."\r\n");
fwrite($file,utf8_encode($nb_pieces)."\r\n");
fwrite($file,utf8_encode($CE)."\r\n");
fwrite($file,utf8_encode($prix)."\r\n");
fwrite($file,utf8_encode($mail)."\r\n");
fwrite($file,utf8_encode($lesplus)."\r\n");
fclose($file);

donc j'ai mis les utf8_encode()
mais a la lecture, toujours le même soucis !

LECTURE DU FICHIER :

$ref = $_GET['ref'];
$fp = fopen('locations/'.$ref.'.txt',"r");
$files = file('locations/'.$ref.'.txt');
fclose($fp);

echo ' <h1> Bien en location n°'.$ref.': '.$files[8].'€/mois</h1></br>';
echo '<h2> PHOTO </h2></br> ';
echo '<p class="centre"><img src="photos/'.$ref.'.jpg" alt="Bien n°'.$ref.'" class="bien"/></p></br>';
echo '<h2>Caractéristiques</h2></br>';
echo '<ul>';
echo '<li>Type: '.$files[2].'</li>';
echo '<li>Secteur: '.$files[3].'</li>';
echo '<li>Surface: '.$files[4].'m²</li>';
echo '<li>Surface de Terrain: '.$files[5].'m²</li>';
echo '<li>Pièces: ' .$files[6].'</li>';
echo '<li>Classe énergetique: ' .$files[7].'</li>';
echo '<li>Les plus: ' .$files[9].'</li>';
echo '</ul>';


j'ai essayé le utf8_decode() mais ca ne marche pas, et tel que non plus !

j'ai essayé de placer dans mon fichier texte avec fwrite une entete d'encodage utf8 mais ca perturbe celui de mon header donc ca ne fonctionne pas





avais vous une idée?!

merci d'avance

Dreanad
A voir également:

7 réponses

le_joker_fou Messages postés 765 Date d'inscription   Statut Membre Dernière intervention   239
 
Salut,

Si tu ouvres ton fichier txt avec le bloc note les accents sont bons?
0
Dreanad Messages postés 91 Statut Membre 4
 
Nop,
pour " étage "
j'ai : étage
0
Dreanad Messages postés 91 Statut Membre 4
 
rectification : & A t i l d e ; & c o p y ;tage ( ccm ma corrigé en étage )
0
pandageek Messages postés 379 Statut Membre 4
 
tu n'as pas le droit au mysql?
si tu peux :
https://forums.commentcamarche.net/forum/affich-26728936-encodage-un-complot#6

sinon tu peux faire une fonction "encode" qui transforme dans ta chaine de caractère les éèêà (etc..) en leur code html (& eacute; etc...)
la fonction str_replace t'aidera
http://php.net/manual/en/function.str-replace.php
0
tryan44 Messages postés 1381 Statut Membre 220
 
Quelle DOCTYPE, charset et encodage utilise votre fichier car généralement le soucis vient de la..?
0
Dreanad Messages postés 91 Statut Membre 4
 
je ne peut pas le mettre dans le fichier texte, donc ils utilise celui du header du site, donc en UTF-8
0
tryan44 Messages postés 1381 Statut Membre 220
 
ok et la page elle même (pas le fichier txt) utilise bien un encodage en utf-8 également?
Quelle est le DOCTYPE utilisé
0
Dreanad Messages postés 91 Statut Membre 4
 
je te le copie :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<title>IdoLogis</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
0
tryan44 Messages postés 1381 Statut Membre 220
 
Il faut également savoir quelle type d'encodage utilise votre page. Sous Notepad++, utilisez le bouton "Encodage" pour le savoir. Théoriquement votre fichier devrait être encoder en utf-8 (sans BOM) si je ne me plante pas.
0
Dreanad Messages postés 91 Statut Membre 4
 
exact ! les pages sont toutes encodé en UTF-8 SANS BOM
0
Dreanad Messages postés 91 Statut Membre 4
 
Non je n'ai pas le droit au SQL, en faite, si on peut, mais les profs ne preferent pas, vu que l'on as pas tout vue en cours, ils disent que ca risque de poser d'autre problème, ce qui n'ai pas faut, et ca me ferais tout recommencer depuis le debut..! et effacer ce que j'ai appris en faisait cela

j'aimerais aussi eviter une fonction de 40 lignes rien que pour les accents..
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Dreanad Messages postés 91 Statut Membre 4
 
j'ai reussis a contourner le problème en enlevant le htmlentities() de ma variable $lesplus

mais du coup comment proteger cette variable ?
0
Dreanad Messages postés 91 Statut Membre 4
 
En refléchissant deux secondes, j'me suis rappeler qu'il y avait html_entity_decode().

donc ca marche impec !

variable entré dans le fichier generer en htmlentities() puis quand je lis le fichier un html_entity_decode(). ;)
0
tryan44 Messages postés 1381 Statut Membre 220
 
harggggg on va vous buter ;) ... si on avait le code au complet d'entrée de jeu ça aurait été réglé plus vite.

Ceci dit, le principal c'est que ça fonctionne :).
0