conversion UNICODE -> ASCII
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:
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:
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:
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.