Bonjour à tous,
Histoire de planter le décor, voici en gros la situation dans laquelle je me trouve.
J'ai un fichier texte comprenant des données exportées d'un système tiers.
Je lis ce fichier ligne par ligne (chaque ligne étant un record) et j'importe les données dans une DB Sql Server.
Lorsqu'il y a quelque chose qui coince sur une des lignes, je copie la ligne dans un fichier créé à la volée et j'y ajoute le message d'erreur (une sorte de fichier log quoi).
Mon souci est que l'encodage de mon fichier source est différent de celui du fichier de destination (celui pour le log). Ce qui fait que j'ai des soucis avec les caractères accentués.
Mon fichier log est créé comme suit :
Si j'ouvre chacun des deux fichiers avec Notepad++, je constate que le première est encodé en ANSI et le second en UTF-8.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Using sw As StreamWriter = IO.File.CreateText(LePathQuiVaBien) sw.WriteLine(LeMessage) End Using
Faut-il que je précise lors de la déclaration de mon streamreader l'encodage utilisé ou bien dois-je préciser cela pour le streamwriter ?
Je note cependant que dans la DB, les caractères accentués y sont bien représenté. VS ne semble donc pas avoir de problème pour arriver à les lire correctement.
EDIT : Je suis en train de tester en spécifiant l'encodage ASCII à la déclaration du streamreader. J'en déduirai si cela fonctionne que c'est là la bonne méthode à appliquer. Cependant, si quelqu'un pouvait m'apporter quelques explications théoriques sur le sujet, cela ne serait pas de refus.
Partager