OVH Cloud OVH Cloud

Lecture et écriture de caractères accentuées dans un fichier tex te

3 réponses
Avatar
Frédéric
En utilisant la méthode System.IO.File.OpenText j'ai des problèmes de lecture
de caractères accentués. Exemple en lisant dans un fichier texte la chaine
"voilà l'été" je vais récupérer la chaine "voil l't".
J'ai le même type de problème en utilisant un System.IO.StreamWriter. Je
souhaite écrire "Partagé" dans un fichier texte et je me retrouve avec
"Partagé".
Est ce un paramètre de l'environnement de développement ou faut il regarder
du côté des la "Culture"? Si oui comment faut il faire?

Merci d'avance

3 réponses

Avatar
AlexC
Il faut spécifier le type d'encodage que tu utilise pour creer ton fichier
et ecrire dans ce dernier
il faut encoder en UTF-8 ou par défaut ...
exemple de MSDN :

Dim SwFromFileStreamDefaultEnc As StreamWriter = New
StreamWriter("c:Test.txt", False, System.Text.Encoding.UTF8)
SwFromFileStreamDefaultEnc.Write("Voilà l'été")
SwFromFileStreamDefaultEnc.Flush()
SwFromFileStreamDefaultEnc.Close()

AlexC

"Frédéric" <Frédé a écrit dans le message de
news:
En utilisant la méthode System.IO.File.OpenText j'ai des problèmes de
lecture
de caractères accentués. Exemple en lisant dans un fichier texte la chaine
"voilà l'été" je vais récupérer la chaine "voil l't".
J'ai le même type de problème en utilisant un System.IO.StreamWriter. Je
souhaite écrire "Partagé" dans un fichier texte et je me retrouve avec
"Partagé".
Est ce un paramètre de l'environnement de développement ou faut il
regarder
du côté des la "Culture"? Si oui comment faut il faire?

Merci d'avance


Avatar
Frédéric
En utilisant System.Text.Encoding.UTF8 cela ne passe pas. Par contre, j'ai
essayé System.Text.Encoding.Default et là c'est correct en écriture et en
lecture.

Merci

"AlexC" wrote:

Il faut spécifier le type d'encodage que tu utilise pour creer ton fichier
et ecrire dans ce dernier
il faut encoder en UTF-8 ou par défaut ...
exemple de MSDN :

Dim SwFromFileStreamDefaultEnc As StreamWriter = New
StreamWriter("c:Test.txt", False, System.Text.Encoding.UTF8)
SwFromFileStreamDefaultEnc.Write("Voilà l'été")
SwFromFileStreamDefaultEnc.Flush()
SwFromFileStreamDefaultEnc.Close()

AlexC

"Frédéric" <Frédé a écrit dans le message de
news:
> En utilisant la méthode System.IO.File.OpenText j'ai des problèmes de
> lecture
> de caractères accentués. Exemple en lisant dans un fichier texte la chaine
> "voilà l'été" je vais récupérer la chaine "voil l't".
> J'ai le même type de problème en utilisant un System.IO.StreamWriter. Je
> souhaite écrire "Partagé" dans un fichier texte et je me retrouve avec
> "Partagé".
> Est ce un paramètre de l'environnement de développement ou faut il
> regarder
> du côté des la "Culture"? Si oui comment faut il faire?
>
> Merci d'avance





Avatar
AlexC
si tu spécifie un encodage pour l'écriture ( ici UTF-8 ), il te faut aussi
spécifier aussi l'encodage poru la lecture :

Dim Fichier as new StreamReader("c:test.txt",System.Text.Encoding.UTF8)


"Frédéric" <Frédé a écrit dans le message de
news:
En utilisant System.Text.Encoding.UTF8 cela ne passe pas. Par contre, j'ai
essayé System.Text.Encoding.Default et là c'est correct en écriture et en
lecture.

Merci

"AlexC" wrote:

Il faut spécifier le type d'encodage que tu utilise pour creer ton
fichier
et ecrire dans ce dernier
il faut encoder en UTF-8 ou par défaut ...
exemple de MSDN :

Dim SwFromFileStreamDefaultEnc As StreamWriter = New
StreamWriter("c:Test.txt", False, System.Text.Encoding.UTF8)
SwFromFileStreamDefaultEnc.Write("Voilà l'été")
SwFromFileStreamDefaultEnc.Flush()
SwFromFileStreamDefaultEnc.Close()

AlexC

"Frédéric" <Frédé a écrit dans le message
de
news:
> En utilisant la méthode System.IO.File.OpenText j'ai des problèmes de
> lecture
> de caractères accentués. Exemple en lisant dans un fichier texte la
> chaine
> "voilà l'été" je vais récupérer la chaine "voil l't".
> J'ai le même type de problème en utilisant un System.IO.StreamWriter.
> Je
> souhaite écrire "Partagé" dans un fichier texte et je me retrouve avec
> "Partagé".
> Est ce un paramètre de l'environnement de développement ou faut il
> regarder
> du côté des la "Culture"? Si oui comment faut il faire?
>
> Merci d'avance