Salut
comment connaitre l encodage d une string ; je recupere une string de cette forme :
Merci d avanceVoici le relev�
Salut
comment connaitre l encodage d une string ; je recupere une string de cette forme :
Merci d avanceVoici le relev�
Il n'y a pas vraiment de moyen de le savoir, sans avoir plus d'info.
Il y a des librairies qui permettent, en général, d'avoir l'encoding, mais ce n'est pas sûr à 100% (En gros, il essayent tous les encodage, et regardent si ça ressemble à quelque chose dans tel ou tel langage)
http://code.google.com/p/ude/
http://www.architectshack.com/TextFi...gDetector.ashx
Merci je vais essaye !
Ce que j ai deja essaye c est de convertir la string en essayant tous les Encoding disponible
En utilisant ce code :
Pourtant aucune convertion ne me retourne ce qu il faut !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 class Example { static void Main() { string unicodeString = "This string contains the unicode character Pi (\u03a0)"; // Create two different encodings. Encoding ascii = Encoding.ASCII; Encoding unicode = Encoding.Unicode; // Convert the string into a byte array. byte[] unicodeBytes = unicode.GetBytes(unicodeString); // Perform the conversion from one encoding to the other. byte[] asciiBytes = Encoding.Convert(unicode, ascii, unicodeBytes); // Convert the new byte[] into a char[] and then into a string. char[] asciiChars = new char[ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length)]; ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0); string asciiString = new string(asciiChars); // Display the strings created before and after the conversion. Console.WriteLine("Original string: {0}", unicodeString); Console.WriteLine("Ascii converted string: {0}", asciiString); } }
"L'encodage d'une string", ça ne veut rien dire. En .NET, la représentation interne d'une string est toujours UTF-16, mais c'est un détail d'implémentation que tu n'as pas vraiment besoin de connaître. Là où l'encodage entre en jeu, c'est quand tu dois convertir la chaîne en binaire pour l'écrire sur un flux (ou au contraire, lire une chaîne à partir d'un flux binaire).
Puisque la notion d'encodage n'a pas de sens pour une chaîne, les conversions que tu essaies de faire n'ont pas de sens non plus : le caractère bizarre dans ta chaîne montre que tu as déjà perdu l'information sur le caractère d'origine, il n'est plus récupérable. Il faut donc régler le problème en amont.
La raison pour laquelle tu obtiens des caractères bizarres, c'est que l'encodage que tu as utilisé pour lire le fichier n'est pas le bon. A priori tu as lu le fichier comme si c'était de l'UTF-8 (c'est l'option par défaut de StreamReader), alors qu'en fait le fichier est encodé en ANSI. Le caractère 'é' (233 en ANSI) n'est pas reconnu en UTF-8, d'où le caractère bizarre qui signifie simplement "caractère non reconnu". Il faut donc ouvrir le fichier en spécifiant Encoding.Default pour l'encodage.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager