Encodage fichier texte
Dreanad
Messages postés
91
Statut
Membre
-
tryan44 Messages postés 1381 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
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:
- Encodage fichier texte
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
7 réponses
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
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
Quelle DOCTYPE, charset et encodage utilise votre fichier car généralement le soucis vient de la..?
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>
<!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>
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..
j'aimerais aussi eviter une fonction de 40 lignes rien que pour les accents..
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
j'ai reussis a contourner le problème en enlevant le htmlentities() de ma variable $lesplus
mais du coup comment proteger cette variable ?
mais du coup comment proteger cette variable ?
pour " étage "
j'ai : étage