Bonjour,
je dois réaliser une classe de récupération de divers fichiers textes de formats différents (CSV, txt, etc.) ... et surtout de pays différents (Europe Ouest / Latin), Grec, Cyrillique, etc. (Supplement 1, Extended A, Extended B, etc)

J'envisageais donc de commencer par convertir les strings issues des fichiers reçus dont je ne connais pas à priori le codage lors de la réception en UNICODE en utilisant quelque chose du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
                Encoding srcEnc= Encoding.???;
                Encoding dstEnc= Encoding.Unicode;
                byte[] inter = Encoding.Convert(srcEnc, dstEnc, MyString);
Mais justement, il faut connaître le codage source ???? comment faire alors ?

Si par contre je fais un :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
                System.Text.Encoding enc = System.Text.Encoding.UTF8;
                string ToString = enc.GetString(MyString);
je récupère biens tous les caractères, mais les caractères non-ASCII ne sont malgré tout pas traduits... ???

Est-ce que la solution est de parcourir les string et de remplacer caractère par caractère "en "ce qu'on attend" ? Ce serait étonnant... je dois rater quelque chose !

ma chaine de test est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
private byte[] Nam = new byte[] { (byte)'\u00c5', (byte)'\u00c4', (byte)'\u00c6', (byte)'\u00cf', (byte)'\u0020', (byte)'\u0048', (byte)'\u0045'};
avec la solution 2, j'obtiens : "���� HET" ???

Merci.