2009-02-17 90 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