2009-02-17 9 views
3

J'ai lu un fichier qui a des caractères UTF8 comme ceci:Comment écrire des fichiers avec des caractères UTF8 (lisibles)?

FILE *FileIN,*FileOUT; 
FileIN=fopen("filename","r"); 
char string[600]; 
WideChar C[600],S[100]; 
fgets(string,600,FileIN); 
wcscpy(C,UTF8Decode(string).c_bstr()); // widechar copy 

Et il lit parfaitement (ce qui est indiqué dans la zone d'édition lors de l'exécution du programme):

Edit1->Text=C; 

Result ===> "3021";"亜";"7";"ア アシア つ.ぐ T1 や つぎ つぐ" 

La chose est que lorsque Je veux écrire ceci sur un fichier:

FileOUT=fopen("txt.txt","w");  
fwrite(Edit8->Text.c_str(),strlen(Edit8->Text.c_str()),1,FileOUT); 

Result ===> "3021";"?";"7";"? ??? ?.? T1 ? ?? ??" 

la question est, comment puis-je écrire le résultat (celui que je peux voir dans le fonctionnement du programme) dans un fichier?

j'utiliser le langage C sur CodeGear C++ Builder

Résolue grâce à Christoph et nobugz pour l'aide

J'ai changé cette ligne

fwrite(Edit8->Text.c_str(),strlen(Edit8->Text.c_str()),1,FileOUT); 

à celui-ci et travaillé. Merci

fwrite(UTF8Encode(Edit8->Text).c_str(),UTF8Encode(Edit8->Text).Length(),1,FileOUT); 
+0

Si quelques réponses vous ont aidé, ce serait bien si vous les avez votés et accepté – jpalecek

Répondre

2

Je ne sais pas le cadre, mais si vous utilisez UTF8Decode() après la lecture du fichier, vous ne devriez pas utiliser UTF8Encode() avant d'écrire?

+0

merci pour votre réponse – Nek

Questions connexes