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 :
Mais justement, il faut connaître le codage source ???? comment faire alors ?
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);
Si par contre je fais un :
je récupère biens tous les caractères, mais les caractères non-ASCII ne sont malgré tout pas traduits... ???
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);
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 :
avec la solution 2, j'obtiens : "���� HET" ???
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'};
Merci.
Partager