Meilleur auteur de réponses
Encodage

Question
-
Bonjour tout le monde,
je suis désolé d'arriver avec une question aussi basique, je ne sais pas quel encodage déclarer pour un fichier ANSI, qui encode 0xE8 pour un è, et 0xE0 pour un à.
C'est un fichier qui a été créé sous Powershell avec l'encodage par défaut.
J'ai essayé
System.Text.Encoding.GetEncoding("1252") ; System.Text.Encoding.GetEncoding("850") ; System.Text.Encoding.GetEncoding("ISO8859-1") ; System.Text.Encoding.ASCII;
et aucun ne m'affiche correctement ces deux caractères.
Pourtant, si je regarde là
https://en.wikipedia.org/wiki/Windows-1252
ça semble bien confirmer mon premier élan d'utiliser 1252.
En sortie je mets ça :
System.Text.Encoding srcEncoding = System.Text.Encoding.GetEncoding("ISO8859-1") ; System.Text.Encoding tgtEncoding = System.Text.Encoding.UTF8; string[] allLines = File.ReadAllLines(strPath); string msg = allLines[allLines.Length - 2] + "\n" + allLines[allLines.Length - 1]; string strSrc = msg; // String.Join("\n", lines); string notNullString = (strSrc+"").ToString(); byte[] srcBytes = srcEncoding.GetBytes(notNullString); byte[] tgtBytes = System.Text.Encoding.Convert(srcEncoding, tgtEncoding, srcBytes); char[] tgtChars = new char[tgtEncoding.GetCharCount(tgtBytes, 0, tgtBytes.Length)]; tgtEncoding.GetChars(tgtBytes, 0, tgtBytes.Length, tgtChars, 0); string tgtString = new string(tgtChars); MessageBox.Show(tgtString);
Au préalable je me suis rendu compte que si je veux utiliser TakeLast(2) pour afficher les deux dernières lignes (ce qui il faut bien dire est plus élégant que ce que j'ai fait ci-dessus), il faut faire attention à la plateforme employée, entre C# Framework et C# Core, seul un des deux reconnaît la méthode.
- Modifié Gloops dimanche 5 juin 2022 20:11
Réponses
Toutes les réponses
-
-
Bonjour,
Merci d'avoir partagé votre solution avec nous.
Bonne journée.
Cordialement,
Nina
Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.