2009-02-17 88 views
3

我读了有UTF-8字符,像这样的文件:如何使用(可读的)UTF8字符编写文件?

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 

而且它完美地读取它(这是运行程序时显示在编辑框):

Edit1->Text=C; 

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

的事情是,当我想写这样一个文件:

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

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

的问题是,我怎么写,结果在一个文件中(一个我可以在程序运行看)?

我用的CodeGear C++ Builder的C语言

解决 感谢克里斯托夫和nobugz的帮助

我改变了这一行

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

这一个,它工作。由于

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

如果有些答案对你有帮助,如果你投了票并且接受了一些 – jpalecek 2009-02-17 16:04:49

回答

2

我不知道的框架,但如果你看完文件后用UTF8Decode(),你不应该写在使用前UTF8Encode()

+0

谢谢你的回答 – Nek 2009-02-17 16:08:24