GNT sans publicité, site mobile, fonctionnalitées exclusives...

File.open avec un fichier texte

Le
Steeve
Bonjour, voici un peu de code que j'utilise pour loader des fichiers textes
dans unes page web. Tout se passe bien, sauf que certain caractère
n'apparaisent pas (EX: le "e" accent aigu "é"). Quelqu'un peut me dire
pourquoi ?


private void ChargerBiographie()
{
string cheminBiographie;
TextReader contenu;
foreach (DataListItem item in DataList1.Items)
{
Label lblbio = (Label)item.FindControl("lblBiographie");
cheminBiographie = "../admin/biographies/" + lblid.Text + ".txt";

if (File.Exists(Server.MapPath(cheminBiographie)))
{
contenu = File.OpenText(Server.MapPath(cheminBiographie));
lblbio.Text = contenu.ReadToEnd();
contenu.Close();
}
else
{
lblbio.Visible = false;
}
}
Lire les 12 réponses

Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Bismark Prods
Le #12508901
Hello,

"Steeve" news:%
Bonjour, voici un peu de code que j'utilise pour loader des fichiers


textes
dans unes page web. Tout se passe bien, sauf que certain caractère
n'apparaisent pas (EX: le "e" accent aigu... "é"). Quelqu'un peut me dire
pourquoi ?


private void ChargerBiographie()
{
string cheminBiographie;
TextReader contenu;
foreach (DataListItem item in DataList1.Items)
{
Label lblbio = (Label)item.FindControl("lblBiographie");
cheminBiographie = "../admin/biographies/" + lblid.Text + ".txt";

if (File.Exists(Server.MapPath(cheminBiographie)))
{
contenu = File.OpenText(Server.MapPath(cheminBiographie));



Exactement la meme chose que contenu = new
StreamReader(Server.MapPath(cheminBiographie));
Partant de là : il vous faut faire : new StreamReader(chemin,encoding); pour
donner le code des caractères

Bonne prog

lblbio.Text = contenu.ReadToEnd();
contenu.Close();
}
else
{
lblbio.Visible = false;
}
}




YJLAMOTTE
Le #12508841
Bonjour,

Dans ton cas tu peux utiliser System.Text.Encoding.Default si tu es sur un
OS français.
(Obtient un codage pour la page de codes ANSI actuelle du système.)

ca te permettra d'avoir les accents.

YJLAMOTTE

"Steeve" wrote:

Bonjour, voici un peu de code que j'utilise pour loader des fichiers textes
dans unes page web. Tout se passe bien, sauf que certain caractère
n'apparaisent pas (EX: le "e" accent aigu... "é"). Quelqu'un peut me dire
pourquoi ?


private void ChargerBiographie()
{
string cheminBiographie;
TextReader contenu;
foreach (DataListItem item in DataList1.Items)
{
Label lblbio = (Label)item.FindControl("lblBiographie");
cheminBiographie = "../admin/biographies/" + lblid.Text + ".txt";

if (File.Exists(Server.MapPath(cheminBiographie)))
{
contenu = File.OpenText(Server.MapPath(cheminBiographie));
lblbio.Text = contenu.ReadToEnd();
contenu.Close();
}
else
{
lblbio.Visible = false;
}
}





Zazar
Le #12508811
Bonjour,

Bonjour, voici un peu de code que j'utilise pour loader des fichiers


textes
dans unes page web. Tout se passe bien, sauf que certain caractère
n'apparaisent pas (EX: le "e" accent aigu... "é"). Quelqu'un peut me dire
pourquoi ?



Je vais compléter les réponses de Bismark Prods et de YJLAMOTTE.
Vous savez qu'un ordinateur ne comprend que des nombres et ne sait pas
manipuler des chaînes de caractères. Quand on écrit une chaîne de caractère
sur disque, ce sont en fait des nombres qui sont écrits. Une correspondance
est effectuée entre les nombres et les caractères, une sorte de table
d'associations si vous voulez. Seulement, il existe plusieurs tables
d'associations possibles et qui ne sont pas compatibles entre elles. Une
telle table d'association est un encodage. Quand vous lisez un fichier, il
faut le lire avec le même encodage que celui qui a été utilisé pour l'écrire
sinon vous ne retrouvez pas exactement les mêmes caractères. Ce phénomène se
remarque particulièrement sur les caractères accentués.

contenu = File.OpenText(Server.MapPath(cheminBiographie));



Quand vous ouvrez un fichier avec OpenText, l'encodage utilisé est l'UTF8.
Si vous voulez ouvrir un fichier avec un autre encodage, le plus simple est
d'utiliser la classe StreamReader.
Dans votre situation, un contenu = new
StreamReader(Server.MapPath(cheminBiographie), Encoding.Default) répondra
certainement à vos besoins. L'encodage utilisé pour lire le texte sera alors
l'encodage par défaut de votre environnement.

--
Zazar
Bismark Prods
Le #12508511
Et savez-vous combien de pages de codes il existe ?


"Zazar" de news:
Bonjour,

> Bonjour, voici un peu de code que j'utilise pour loader des fichiers
textes
> dans unes page web. Tout se passe bien, sauf que certain caractère
> n'apparaisent pas (EX: le "e" accent aigu... "é"). Quelqu'un peut me


dire
> pourquoi ?

Je vais compléter les réponses de Bismark Prods et de YJLAMOTTE.
Vous savez qu'un ordinateur ne comprend que des nombres et ne sait pas
manipuler des chaînes de caractères. Quand on écrit une chaîne de


caractère
sur disque, ce sont en fait des nombres qui sont écrits. Une


correspondance
est effectuée entre les nombres et les caractères, une sorte de table
d'associations si vous voulez. Seulement, il existe plusieurs tables
d'associations possibles et qui ne sont pas compatibles entre elles. Une
telle table d'association est un encodage. Quand vous lisez un fichier, il
faut le lire avec le même encodage que celui qui a été utilisé pour


l'écrire
sinon vous ne retrouvez pas exactement les mêmes caractères. Ce phénomène


se
remarque particulièrement sur les caractères accentués.

> contenu = File.OpenText(Server.MapPath(cheminBiographie));

Quand vous ouvrez un fichier avec OpenText, l'encodage utilisé est l'UTF8.
Si vous voulez ouvrir un fichier avec un autre encodage, le plus simple


est
d'utiliser la classe StreamReader.
Dans votre situation, un contenu = new
StreamReader(Server.MapPath(cheminBiographie), Encoding.Default) répondra
certainement à vos besoins. L'encodage utilisé pour lire le texte sera


alors
l'encodage par défaut de votre environnement.

--
Zazar




Zazar
Le #12508501
> Et savez-vous combien de pages de codes il existe ?



Beaucoup me paraît être une bonne estimation. Il y a eu plusieurs pages de
code pour certaines langues et plusieurs versions de ces pages de codes.
Les gens qui ont travaillé sur Unicode, ont du faire un travail de fourmi
pour uniformiser tout ça.
Sinon, il me semble que Windows supporte une centaine de pages de code dont
quelques unes inventées par microsoft.

--
Zazar
Publicité
Suivre les réponses
Poster une réponse
Anonyme