
Envoyé par
Pasqualini
Il s'agit bien de 4 octets.
J'ai essayé l'option
SaveToFile(usNom, Encoding->ANSI);
Cela n'a pas suffit.
Je ne comprends pourquoi ici mon encodgae semble fonctionner.
Le code que j'ai mis dans le constructeur:
1 2 3 4 5 6 7 8 9 10 11 12
| TStringList* Fichier = new TStringList();
if(Fichier->Encoding == NULL)
{
Fichier->Add("Default Encoding: " + Fichier->DefaultEncoding->EncodingName);
}
else
{
Fichier->Add("Encoding: " + Fichier->Encoding->EncodingName);
}
Fichier->Add("Fête");
Fichier->SaveToFile("c:\\temp.txt", TEncoding::ANSI);
delete Fichier; |
Le résultat obtenu avec TEncoding::ANSI:
00000000h: 44 65 66 61 75 6C 74 20 45 6E 63 6F 64 69 6E 67 ; Default Encoding
00000010h: 3A 20 31 32 35 32 20 20 28 41 4E 53 49 20 2D 20 ; : 1252 (ANSI -
00000020h: 6C 61 74 69 6E 20 49 29 0D 0A 46 EA 74 65 0D 0A ; latin I)..Fête..
Lorsque j'utilise TEncoding::Unicode:
00000000h: FF FE 44 00 65 00 66 00 61 00 75 00 6C 00 74 00 ; ÿþD.e.f.a.u.l.t.
00000010h: 20 00 45 00 6E 00 63 00 6F 00 64 00 69 00 6E 00 ; .E.n.c.o.d.i.n.
00000020h: 67 00 3A 00 20 00 31 00 32 00 35 00 32 00 20 00 ; g.:. .1.2.5.2. .
00000030h: 20 00 28 00 41 00 4E 00 53 00 49 00 20 00 2D 00 ; .(.A.N.S.I. .-.
00000040h: 20 00 6C 00 61 00 74 00 69 00 6E 00 20 00 49 00 ; .l.a.t.i.n. .I.
00000050h: 29 00 0D 00 0A 00 46 00 EA 00 74 00 65 00 0D 00 ; ).....F.ê.t.e...
00000060h: 0A 00 ; ..
Seulement quand je met TEncoding::UTF8 alors j'ai la même chose que toi:
00000000h: EF BB BF 44 65 66 61 75 6C 74 20 45 6E 63 6F 64 ; Default Encod
00000010h: 69 6E 67 3A 20 31 32 35 32 20 20 28 41 4E 53 49 ; ing: 1252 (ANSI
00000020h: 20 2D 20 6C 61 74 69 6E 20 49 29 0D 0A 46 C3 AA ; - latin I)..Fê
00000030h: 74 65 0D 0A ; te..
Partager